js中关于new Object时传参的一些细节分析
2018-10-12 13:55
435 查看
1, 参数是一个对象,核心js对象(native ECMAScript object)或宿主对象(host object),那么将直接返回该对象。
其生成的对象构造器仍然是所传参数对象的构造器。这样造成的后果是虽然该对象是new Object,但其constructor不一定是Object。
2, 参数是基本类型对象,如字符串(String),数字(Number),布尔值(Boolean),将其包装成对象(转换成其对应的包装类)后返回。
从以上看出,当传参数时,使用new Object生成的对象其构造器不一定指向Object,只有很巧的时候会指向Object,如
以上就能明了为何jquery1.4+中以下代码返回false了
其生成的对象构造器仍然是所传参数对象的构造器。这样造成的后果是虽然该对象是new Object,但其constructor不一定是Object。
function Person(){this.name='jack';}
var w = new Object(window),
d = new Object(document),
p = new Object(new Person());
console.log(w.constructor); //-> Window
console.log(d.constructor); //-> HTMLDocument
console.log(p.constructor); //-> Person
2, 参数是基本类型对象,如字符串(String),数字(Number),布尔值(Boolean),将其包装成对象(转换成其对应的包装类)后返回。
var s = new Object('hello'),
n = new Object(22),
b = new Object(true);
console.log(typeof s); //-> Object
console.log(typeof n); //-> Object
console.log(typeof b); //-> Object
console.log(s.constructor); //-> String
console.log(n.constructor); //-> Number
console.log(b.constructor); //-> Boolean
从以上看出,当传参数时,使用new Object生成的对象其构造器不一定指向Object,只有很巧的时候会指向Object,如
var obj1 = new Object,
obj2 = {};
var o1 = new Object(obj1);
o2 = new Object(obj2);
console.log(o1.constructor); //-> Object
console.log(o2.constructor); //-> Object
以上就能明了为何jquery1.4+中以下代码返回false了
function Person(){this.name='jack';}
var p = new Person();
$.isPlainObject(new Object(4)); //-> false
$.isPlainObject(new Object('hello')); //-> false
$.isPlainObject(new Object(true)); //-> false
$.isPlainObject(new Object(p)); //-> false
您可能感兴趣的文章:
- js之ActiveX控件使用说明 new ActiveXObject()
- javascript中IE浏览器不支持NEW DATE()带参数的解决方法
- 关于js new Date() 出现NaN 的分析
- 正则(JS)re=new RegExp("^\\d*$");与re=/^\d*$/;之间区别?
- Javascript new关键字的玄机 以及其它
- Javascript new Date().valueOf()的作用与时间戳由来详解
- javascript new一个对象的实质
- JavaScript中的new的使用方法与注意事项
- js中获取时间new Date()的全面介绍
- JavaScript初学者必看“new”
相关文章推荐
- js中关于new Object时传参的一些细节分析
- 关于new Object时传参的一些细节
- 关于JS操作DOM的一些小细节
- 关于实现ListView原生上拉加载的一些细节问题分析
- 关于js设计模式的一些总结和理解
- 关于iOS内购的一些代码整理分析
- 关于新创建一个虚拟机以及多台机器ssh无密登录的一些细节问题补充
- 关于0-1背包的动态规划,回溯和分支限界法的一些分析和代码
- 关于网站分页导航的十个细节分析
- 今天在看一些面试题的时候遇到的一个关于strcmp()返回值的细节问题
- 关于js里面的一些距离和宽高
- Cnblogs关于嵌入js和css的一些黑科技
- 关于JS和浏览器的一些总结
- js中关于document.domain的一些解释
- js关于时间日期的一些方法汇总
- 一些关于AWS的小细节(1)
- 关于JS中 缺少对象错误分析
- js中关于时间的一些函数
- 【JavaScript】关于js的一些理解
- 关于MFC中CDHtmlDialog嵌入flash和调用JS一些技术总结