日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

js中关于new Object时传参的一些细节分析

發(fā)布時(shí)間:2025/4/16 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js中关于new Object时传参的一些细节分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1, 參數(shù)是一個(gè)對(duì)象,核心js對(duì)象(native ECMAScript object)或宿主對(duì)象(host object),那么將直接返回該對(duì)象。
其生成的對(duì)象構(gòu)造器仍然是所傳參數(shù)對(duì)象的構(gòu)造器。這樣造成的后果是雖然該對(duì)象是new Object,但其constructor不一定是Object。

復(fù)制代碼 代碼如下:
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, 參數(shù)是基本類型對(duì)象,如字符串(String),數(shù)字(Number),布爾值(Boolean),將其包裝成對(duì)象(轉(zhuǎn)換成其對(duì)應(yīng)的包裝類)后返回。

復(fù)制代碼 代碼如下:
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


從以上看出,當(dāng)傳參數(shù)時(shí),使用new Object生成的對(duì)象其構(gòu)造器不一定指向Object,只有很巧的時(shí)候會(huì)指向Object,如

復(fù)制代碼 代碼如下:
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了

復(fù)制代碼 代碼如下:


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

轉(zhuǎn)載于:https://www.cnblogs.com/yanan-boke/p/7446400.html

總結(jié)

以上是生活随笔為你收集整理的js中关于new Object时传参的一些细节分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。