博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js中关于new Object时传参的一些细节分析
阅读量:5992 次
发布时间:2019-06-20

本文共 1364 字,大约阅读时间需要 4 分钟。

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

你可能感兴趣的文章
zipfile 压缩文件并存放到指定位置
查看>>
Docker集群管理系统Kubernetes
查看>>
DB2数据库用SQL求时间差
查看>>
shell中变量的查看和删除
查看>>
AutoUpgrader.Pro.v4.6.4自动升级
查看>>
VSAN故障-数据传输速度极慢
查看>>
Router OS创建PPPOE服务器。
查看>>
tar命令语法(-[cxt],-[zj],-v,-f)
查看>>
连接12cR2 PDB报错ORA-28040/ORA-01017
查看>>
【Oracle Database 12c新特性】SYS_AUTO_SPM_EVOLVE_TASK 自动作业
查看>>
python小实例
查看>>
系统服务的控制
查看>>
Exchange 2013 cu16补丁更新
查看>>
Netty In Action中文版 - 第一章:Netty介绍
查看>>
关于Segmentation fault (core dumped)
查看>>
nginx + PHP (FastCGI) 高性能服务器部署
查看>>
Linux--系统延时及定时任务
查看>>
boost async_read_some 用法
查看>>
linux返回码 $?
查看>>
随笔 - 茶花
查看>>