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时传参的一些细节分析相关推荐

  1. js中关于带数字类型参数传参丢失首位数字0问题

    最近在项目中遇到一个问题,js中传带有数字的参数时,如果参数开头有数字0,会把0给去掉. 例如: 方法abc(0123456,789); 方法abc中获取的参数0123456就会变为123456. 原 ...

  2. js onclick传参对象_js中onClick([object object])的传参问题。跪求!

    你的位置: 问答吧 -> JavaScript -> 问题详情 js中onClick([object object])的传参问题.跪求! 问题是这样的,看代码 for(var i=0;i ...

  3. Vue.js父与子组件之间传参 父向子组件传参   例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为ht

    Vue.js父与子组件之间传参 父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对 ...

  4. vue加载html传参,Vue页面跳转时传参总结

    1 路由跳转 &圈是的编小久据直请结未屏屏会气机页实应高lt;router-link   to="/login"&gt能调页代事求都学是功发解开宗这维视如间请前框来 ...

  5. python调用so库输出传入指针_python中使用ctypes调用so传参设置遇到的问题及解决方法...

    问题 近日在做一组声纹聚类时,使用了另一团队同学开发的声纹距离算法.该算法对外提供的是一组so包,需要使用方自己去使用.在python中调用纯so包一般使用ctypes类库,用起来看起来简单但也有不少 ...

  6. 从字节码看java中 this 的隐式传参

    从字节码看java中 this 隐式传参具体体现(和python中的self如出一辙,但是比python中藏得更深),也发现了 static 与 非 static 方法的区别所在! static与非s ...

  7. JS一起学02:函数传参、操作属性第二种方式、提取行间事件、循环、this、焦点问题、联动选择、选项卡焦点图

    一.函数传参     1.函数传参:参数就是占位符----函数里定不下来的东西 var a1=function(){ alert(123); }; function a(f){ // 相当于 f=a1 ...

  8. Vue中 使用 calc 计算长度并传参

    1. calc() 函数简介与使用 calc():英文单词 calculate (计算)的缩写,是 css3 新增加的一个功能.它可以动态的设置元素样式中 border.margin.padding ...

  9. 在Mybatis中使用万能的Map传参,实现增删改查

    在编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择. Map的特性是键值对应的,只要确定了一个键key,那么值value可以是任何的数据,这样就 ...

最新文章

  1. 如何启用计算机上的无线网络连接,告诉大家win10无线网络连接如何打开
  2. opencv图像灰化_opencv读入图像、灰度化、归一化、向量化
  3. oracle字段求和_oracle大纲
  4. FixedSizeList的使用
  5. 《重新认识你自己》八:与真实的自我相处
  6. access开发精要(11)-对象命名规定
  7. Linux的Nginx六:源码|安装
  8. 知乎万赞:人并不是活一辈子,而是活几个瞬间
  9. VDI序曲十四 使用 RemoteFX 安装和配置 USB 重定向
  10. 菜鸟的spring security学习教程
  11. centos du 命令使用
  12. js实现网页在线聊天功能(四)
  13. し: make jianjie的文本网页
  14. 电脑香港,香港购物:在HK买笔记本电脑都要注意什么?
  15. 福建农村信用社计算机类C卷考什么,2015年福建省农村信用社公开招聘考试《计算机类》真题及详解...
  16. 2008,AMD发展史上的一个分水岭
  17. Windows10杀毒软件哪个好用点?
  18. C语言/C++编程学习:和QT零距离接触的意义
  19. AES加解密算法详解
  20. 【SpringBoot】35、SpringBoot整合Redis监听Key过期事件

热门文章

  1. 日期类的加减及java中所以日期类的操作算法大全
  2. Java数据结构和算法:数组、单链表、双链表
  3. Java基础:网络编程
  4. 安卓自定义View进阶-Matrix Camera
  5. Ajax、jQuery基础入门视频教程
  6. BOM事件对象even
  7. linux系统中条码如何识别的,如何(可靠地)在嵌入式(无头)Linux中读取USB条形码扫描仪?...
  8. gitlab新建项目_基础架构之GitLab
  9. php账号密码备忘,WordPress使用备忘
  10. js把word转html在线预览,js实现word转换为html