最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js中關(guān)于new Object時傳參的一些細節(jié)分析

 更新時間:2011年03月13日 23:00:31   作者:  
這里討論給Object傳參時,其內(nèi)部的處理。參考:ECMA262 V5 15.2.2.1
1, 參數(shù)是一個對象,核心js對象(native ECMAScript object)或宿主對象(host object),那么將直接返回該對象。
其生成的對象構(gòu)造器仍然是所傳參數(shù)對象的構(gòu)造器。這樣造成的后果是雖然該對象是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ù)是基本類型對象,如字符串(String),數(shù)字(Number),布爾值(Boolean),將其包裝成對象(轉(zhuǎn)換成其對應(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ù)時,使用new Object生成的對象其構(gòu)造器不一定指向Object,只有很巧的時候會指向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

相關(guān)文章

最新評論

道孚县| 揭东县| 秀山| 嘉兴市| 开原市| 襄垣县| 樟树市| 沙坪坝区| 浪卡子县| 普兰店市| 广宗县| 康定县| 隆子县| 石家庄市| 吉木萨尔县| 象州县| 镇康县| 泾源县| 铁岭市| 兴仁县| 杭州市| 永登县| 长治县| 济阳县| 井研县| 广水市| 许昌市| 万载县| 临夏市| 义马市| 汕尾市| 乐东| 桃江县| 达拉特旗| 新闻| 马山县| 黄石市| 绥德县| 拜城县| 故城县| 翁源县|