国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 23:54:15
字體:
來源:轉載
供稿:網友
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
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沂水县| 仙居县| 七台河市| 永和县| 松江区| 新竹县| 栾川县| 镇安县| 河北省| 丰顺县| 横山县| 临江市| 吴江市| 株洲市| 武城县| 星子县| 淄博市| 亳州市| 新巴尔虎右旗| 金堂县| 阳新县| 扬中市| 天全县| 莲花县| 高雄市| 翁源县| 邢台市| 双桥区| 凉城县| 醴陵市| 东安县| 乐东| 高邑县| 枣庄市| 嘉荫县| 牙克石市| 凭祥市| 漠河县| 崇仁县| 乐安县| 平顺县|