好久没更新啦~

一、背景

朋友给我发了一个题,我的答案和正确答案刚好相反。惊!

正确答案是:false和true
接下来我讲一下我对这道题所涉及的知识点的理解
说明:

只要 new 表达式之后的 constructor 返回(return)一个引用对象(数组,对象,函数等),都将覆盖new创建的匿名对象。
如果返回(return)一个原始类型(无 return 时其实为 return 原始类型 undefined),那么就返回 new 创建的匿名对象。

二、分析

  • String(‘foo’) 结果是‘foo’,数据类型:string
  • new String(‘foo’) 结果是String {“foo”},数据类型:object

对于 new function()
构造器constructor中,返回的是一个原始类型"foo",则new表达式创建一个匿名对象,等同于var

foo1=new function(){/* something */},如下:
var foo1= new function() {return String('foo')   //String('foo') 相当于 'foo'
};
alert(foo1);  //[object Object]

构造器constructor中,返回了一个对象,那么new String(‘foo’)将会覆盖整个new function(){/* */},即等同于var foo2=new String(“foo”);如下:

var foo2= new function() {return new String('foo')   //new String('foo') 返回的是String {"foo"}对象
};
alert(foo2);  //'foo'

最后回到一开始的题中:

'foo' == new function() { return String('foo') };
//相当于
'foo' == new function() { return 'foo' }
'foo' ==  [object Object]  //false
'foo' == new function() { return new String('foo') };
//相当于
'foo' == new String('foo')  //true
//这里因为是 == ;所以会先进行类型的转换,再比较 所以返回的是true

new function()理解相关推荐

  1. var a = {}以及var a = function(){}以及function(){}理解

    一.var a = {}的理解 var a = {}:这是声明的一个没有任何属性的对象 var a = {name:'跳跳'}:这是一个声明带name属性的对象,属性名为name 属性值为跳跳 取值的 ...

  2. 【深度学习 一】activation function以及loss function理解

    一  首先线性回归模型: 可以看成是单层神经网络 二  引入非线性元素,使神经网络可以完成非线性映射,就引入了sigmoid,ReLU,softmax等激活函数 Sigmoid函数 Sigmoid = ...

  3. js function理解

    1.function是对象,定义一个function就会在堆中创建一个对象.生成函数如下: (1) var a = new Function("document.write(1)" ...

  4. JQuery的$(document).ready(function(){})与JS的window.onload 的各自优势!

    由于项目需要,使用JQuery也有相当一段时间了.由于经常要处理DOM节点加载.图片显示以及动态资源请求,所以对$(document).ready(function(){})理解也越来越深了,所有在此 ...

  5. var foo = 1; (function foo() { foo = 100; console.log(foo); }()) console.log(foo);

    前几天刷题看到有个题目是这样的 问:打印的结果是什么? 答: 认识一下立即执行函数 立即执行函数,就是不需要被调用,立即能自己执行的函数. 语法格式: 第一种::(function () {} ()) ...

  6. javascript中function详解

    目录 概念 定义 函数内部 this arguments 绑定函数作用域 Function.prototype.bind Function.prototype.applay Function.prot ...

  7. 常见的神经网络求导总结!

    ↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:Criss,来源:机器学习与生成对抗网络 derivative of ...

  8. 收藏 | 神经网络的 5 种常见求导,附详细的公式过程

    来源:机器学习与生成对抗网络 本文约1800字,建议阅读5分钟 本文为你介绍5种常见求导的详细过程! 01 derivative of softmax 1.1 derivative of softma ...

  9. 神经网络的5种常见求导,附详细的公式过程

    来源:机器学习与生成对抗网络 本文约2000字,建议阅读5分钟 本文为你介绍神经网络的5种常见求导方式. 01 derivative of softmax 1.1 derivative of soft ...

  10. 收藏 | 常见的神经网络求导总结!

    来源:机器学习与生成对抗网络本文约1700字,建议阅读5分钟本文为你总结常见的神经网络求导. derivative of softmax 1.1 derivative of softmax 一般来说, ...

最新文章

  1. 在 VMware ESXi 5.0 上安装万兆网卡驱动
  2. 016-热更新之FishingJoy一
  3. 另一种的SQL注入和DNS结合的技巧
  4. 测开之路二十:比较v1和v2
  5. prototype.js 让你更深入的了解javascript的面向对象特性
  6. maven报错解决: -source 1.5 中不支持 diamond 运算符
  7. No module named 'oscar.apps.promotions'
  8. ssm框架重定向_Java SSM 框架面试题,附答案!
  9. 无线路由器参数设置精通技巧
  10. java王大拿谢大脚_《乡村爱情1》:“王大拿”赵本山有3大亮点,追谢大脚根本不算啥...
  11. python十个运维实战项目_干货 | 这4个Python实战项目,让你瞬间读懂Python!
  12. (88)FPGA面试题-使用Verilog HDL编写二进制转格雷码
  13. android生成错误日志文件,android Crash日志写入文件
  14. Sorry sir!
  15. 【数学建模】论文模板和latex模板
  16. 【数模之数据分析-2】
  17. 【Devc++】双人跑酷小游戏1.3
  18. 鼓励与信任让人变得强大
  19. Workflow 在数据仓库建设中的应用与优化
  20. 前端使用jsencrypt的rsa加密算法加密信息后,在openresty搭建的网关处进行密文解密遇到的坑

热门文章

  1. 一、Fiddler抓包工具 — Fiddler介绍与安装
  2. webpack打包UMD学习记录
  3. 【垂直切换】TD-SCDMA与TD-LTE异构网络垂直切换仿真
  4. GPIO模拟MDC/MDIO协议
  5. 如何学习数字集成电路:数字IC必读书籍
  6. #芯片# R8025(RX-8025T)
  7. 魔兽争霸3-游戏简单剖析 No.2 物品
  8. 实验二 语法分析1——递归子程序法
  9. 百度网站诚信认证现在是个什么情况呢?
  10. Hbase与Hadoop版本对应