new function()理解
好久没更新啦~
一、背景
朋友给我发了一个题,我的答案和正确答案刚好相反。惊!
正确答案是: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()理解相关推荐
- var a = {}以及var a = function(){}以及function(){}理解
一.var a = {}的理解 var a = {}:这是声明的一个没有任何属性的对象 var a = {name:'跳跳'}:这是一个声明带name属性的对象,属性名为name 属性值为跳跳 取值的 ...
- 【深度学习 一】activation function以及loss function理解
一 首先线性回归模型: 可以看成是单层神经网络 二 引入非线性元素,使神经网络可以完成非线性映射,就引入了sigmoid,ReLU,softmax等激活函数 Sigmoid函数 Sigmoid = ...
- js function理解
1.function是对象,定义一个function就会在堆中创建一个对象.生成函数如下: (1) var a = new Function("document.write(1)" ...
- JQuery的$(document).ready(function(){})与JS的window.onload 的各自优势!
由于项目需要,使用JQuery也有相当一段时间了.由于经常要处理DOM节点加载.图片显示以及动态资源请求,所以对$(document).ready(function(){})理解也越来越深了,所有在此 ...
- var foo = 1; (function foo() { foo = 100; console.log(foo); }()) console.log(foo);
前几天刷题看到有个题目是这样的 问:打印的结果是什么? 答: 认识一下立即执行函数 立即执行函数,就是不需要被调用,立即能自己执行的函数. 语法格式: 第一种::(function () {} ()) ...
- javascript中function详解
目录 概念 定义 函数内部 this arguments 绑定函数作用域 Function.prototype.bind Function.prototype.applay Function.prot ...
- 常见的神经网络求导总结!
↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:Criss,来源:机器学习与生成对抗网络 derivative of ...
- 收藏 | 神经网络的 5 种常见求导,附详细的公式过程
来源:机器学习与生成对抗网络 本文约1800字,建议阅读5分钟 本文为你介绍5种常见求导的详细过程! 01 derivative of softmax 1.1 derivative of softma ...
- 神经网络的5种常见求导,附详细的公式过程
来源:机器学习与生成对抗网络 本文约2000字,建议阅读5分钟 本文为你介绍神经网络的5种常见求导方式. 01 derivative of softmax 1.1 derivative of soft ...
- 收藏 | 常见的神经网络求导总结!
来源:机器学习与生成对抗网络本文约1700字,建议阅读5分钟本文为你总结常见的神经网络求导. derivative of softmax 1.1 derivative of softmax 一般来说, ...
最新文章
- 在 VMware ESXi 5.0 上安装万兆网卡驱动
- 016-热更新之FishingJoy一
- 另一种的SQL注入和DNS结合的技巧
- 测开之路二十:比较v1和v2
- prototype.js 让你更深入的了解javascript的面向对象特性
- maven报错解决: -source 1.5 中不支持 diamond 运算符
- No module named 'oscar.apps.promotions'
- ssm框架重定向_Java SSM 框架面试题,附答案!
- 无线路由器参数设置精通技巧
- java王大拿谢大脚_《乡村爱情1》:“王大拿”赵本山有3大亮点,追谢大脚根本不算啥...
- python十个运维实战项目_干货 | 这4个Python实战项目,让你瞬间读懂Python!
- (88)FPGA面试题-使用Verilog HDL编写二进制转格雷码
- android生成错误日志文件,android Crash日志写入文件
- Sorry sir!
- 【数学建模】论文模板和latex模板
- 【数模之数据分析-2】
- 【Devc++】双人跑酷小游戏1.3
- 鼓励与信任让人变得强大
- Workflow 在数据仓库建设中的应用与优化
- 前端使用jsencrypt的rsa加密算法加密信息后,在openresty搭建的网关处进行密文解密遇到的坑