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

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

 更新時(shí)間:2011年03月13日 23:00:31   作者:  
這里討論給Object傳參時(shí),其內(nèi)部的處理。參考:ECMA262 V5 15.2.2.1
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

相關(guān)文章

最新評(píng)論

阳曲县| 阳原县| 车险| 大埔区| 琼海市| 饶平县| 茌平县| 西华县| 凌海市| 潍坊市| 韶山市| 绿春县| 南投市| 都江堰市| 山东| 泰兴市| 襄垣县| 新巴尔虎右旗| 许昌市| 鄱阳县| 卢湾区| 丹棱县| 轮台县| 花莲县| 隆安县| 华宁县| 吕梁市| 望都县| 永年县| 确山县| 洛宁县| 潜江市| 离岛区| 正镶白旗| 内黄县| 文山县| 周宁县| 望城县| 当阳市| 宁晋县| 仪陇县|