js中关于new Object时传参的一些细节分析
1, 参数是一个对象,核心js对象(native ECMAScript object)或宿主对象(host object),那么将直接返回该对象。
其生成的对象构造器仍然是所传参数对象的构造器。这样造成的后果是虽然该对象是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
转载于:https://www.cnblogs.com/yanan-boke/p/7446400.html
js中关于new Object时传参的一些细节分析相关推荐
- js中关于带数字类型参数传参丢失首位数字0问题
最近在项目中遇到一个问题,js中传带有数字的参数时,如果参数开头有数字0,会把0给去掉. 例如: 方法abc(0123456,789); 方法abc中获取的参数0123456就会变为123456. 原 ...
- js onclick传参对象_js中onClick([object object])的传参问题。跪求!
你的位置: 问答吧 -> JavaScript -> 问题详情 js中onClick([object object])的传参问题.跪求! 问题是这样的,看代码 for(var i=0;i ...
- Vue.js父与子组件之间传参 父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为ht
Vue.js父与子组件之间传参 父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对 ...
- vue加载html传参,Vue页面跳转时传参总结
1 路由跳转 &圈是的编小久据直请结未屏屏会气机页实应高lt;router-link to="/login">能调页代事求都学是功发解开宗这维视如间请前框来 ...
- python调用so库输出传入指针_python中使用ctypes调用so传参设置遇到的问题及解决方法...
问题 近日在做一组声纹聚类时,使用了另一团队同学开发的声纹距离算法.该算法对外提供的是一组so包,需要使用方自己去使用.在python中调用纯so包一般使用ctypes类库,用起来看起来简单但也有不少 ...
- 从字节码看java中 this 的隐式传参
从字节码看java中 this 隐式传参具体体现(和python中的self如出一辙,但是比python中藏得更深),也发现了 static 与 非 static 方法的区别所在! static与非s ...
- JS一起学02:函数传参、操作属性第二种方式、提取行间事件、循环、this、焦点问题、联动选择、选项卡焦点图
一.函数传参 1.函数传参:参数就是占位符----函数里定不下来的东西 var a1=function(){ alert(123); }; function a(f){ // 相当于 f=a1 ...
- Vue中 使用 calc 计算长度并传参
1. calc() 函数简介与使用 calc():英文单词 calculate (计算)的缩写,是 css3 新增加的一个功能.它可以动态的设置元素样式中 border.margin.padding ...
- 在Mybatis中使用万能的Map传参,实现增删改查
在编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择. Map的特性是键值对应的,只要确定了一个键key,那么值value可以是任何的数据,这样就 ...
最新文章
- 如何启用计算机上的无线网络连接,告诉大家win10无线网络连接如何打开
- opencv图像灰化_opencv读入图像、灰度化、归一化、向量化
- oracle字段求和_oracle大纲
- FixedSizeList的使用
- 《重新认识你自己》八:与真实的自我相处
- access开发精要(11)-对象命名规定
- Linux的Nginx六:源码|安装
- 知乎万赞:人并不是活一辈子,而是活几个瞬间
- VDI序曲十四 使用 RemoteFX 安装和配置 USB 重定向
- 菜鸟的spring security学习教程
- centos du 命令使用
- js实现网页在线聊天功能(四)
- し: make jianjie的文本网页
- 电脑香港,香港购物:在HK买笔记本电脑都要注意什么?
- 福建农村信用社计算机类C卷考什么,2015年福建省农村信用社公开招聘考试《计算机类》真题及详解...
- 2008,AMD发展史上的一个分水岭
- Windows10杀毒软件哪个好用点?
- C语言/C++编程学习:和QT零距离接触的意义
- AES加解密算法详解
- 【SpringBoot】35、SpringBoot整合Redis监听Key过期事件