這個(gè)方法很強(qiáng)大,也能完成一些JS內(nèi)的繼承。探索ing.......
var q; var p = {x:1,y:2}; q = Object.create(p); // 調(diào)用方法,返回新對象 q.x = "x"; // q的自有屬性x console.log(q.x+" | "+q.__proto__.x); // x | 1 q.x,q.y不是q對象的自有屬性 p = {x:"px"}; console.log(q.x+" | "+q.__proto__.x); // x | 1 重新改變p對象,不收影響 q = Object.create(p); console.log(q.x+" | "+q.__proto__.x); // px | px 調(diào)用方法之后,對象改變 q.__proto__.test = "test"; console.log(p.test); // test 看來方法是返回一個(gè)新對象引用,這個(gè)引用是指向p對象的 // var a = Object.create(b); a,b均為對象,則a._proto_指向b引用的對象,互相可以讀寫 console.log(q.__proto__===p); // true // 讓我們還原一下 p = {x:1,y:2}; q = Object.create(p); // 這兩個(gè)對象像是互相引用的關(guān)系,就像下面這樣 var a = {a1:"a1"}; var b = {b1:"b1",b2:a}; a.a2 = b; console.log(a.a2.b1); // b1 console.log(b.b2.a1); // a1 // 有同學(xué)會(huì)問為什么不能這樣? var x = {x1:"x1",x2:y}; var y = {y1:"y1",y2:x}; console.log(x.x2.y1); // "Uncaught TypeError: Cannot read property "y1" of undefined" // 哦別忘了,JS是從上到下執(zhí)行的,你在x2賦值y的引用時(shí),y對象還沒沒創(chuàng)建呢
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/83284.html
摘要:要用作原型的對象。函數(shù)對象可以創(chuàng)建普通對象,這個(gè)我們上面講過了回顧一下這是一個(gè)自定義構(gòu)造函數(shù)普通對象沒法創(chuàng)建函數(shù)對象,凡是通過創(chuàng)建的對象都是函數(shù)對象,其他都是普通對象通常通過創(chuàng)建,可以通過來判斷。 關(guān)于js的原型和原型鏈,有人覺得這是很頭疼的一塊知識(shí)點(diǎn),其實(shí)不然,它很基礎(chǔ),不信,往下看要了解原型和原型鏈,我們得先從對象說起 創(chuàng)建對象 創(chuàng)建對象的三種方式: 對象直接量 通過對象直接量創(chuàng)建...
摘要:這個(gè)屬性本身又是一個(gè)類型的對象,原型對象都包含一個(gè)指向構(gòu)造函數(shù)的指針,而每一個(gè)實(shí)例也都包含一個(gè)指向原型對象內(nèi)部的指針。 前陣子忙于準(zhǔn)備CET-6,沒時(shí)間更新文章,之后大概一個(gè)月將忙于準(zhǔn)備期末考,也應(yīng)該不會(huì)更新了,今天趁周末有時(shí)間再更新一篇最近研究的一些東西吧。 callee和caller function inner(){ console.log(arguments.calle...
摘要:關(guān)于中面向?qū)ο蟮睦斫饷嫦驅(qū)ο缶幊趟且环N編程思想我們的編程或者學(xué)習(xí)其實(shí)是按照類實(shí)例來完成的學(xué)習(xí)類的繼承封裝多態(tài)封裝把實(shí)現(xiàn)一個(gè)功能的代碼封裝到一個(gè)函數(shù)中一個(gè)類中以后再想實(shí)現(xiàn)這個(gè)功能,只需要執(zhí)行這個(gè)函數(shù)方法即可,不需要再重復(fù)的編寫代碼。 關(guān)于js中面向?qū)ο蟮睦斫?面向?qū)ο缶幊?oop) 它是一種編程思想 (object-oriented programming ), 我們的編程或者學(xué)習(xí)其...
摘要:關(guān)于中面向?qū)ο蟮睦斫饷嫦驅(qū)ο缶幊趟且环N編程思想我們的編程或者學(xué)習(xí)其實(shí)是按照類實(shí)例來完成的學(xué)習(xí)類的繼承封裝多態(tài)封裝把實(shí)現(xiàn)一個(gè)功能的代碼封裝到一個(gè)函數(shù)中一個(gè)類中以后再想實(shí)現(xiàn)這個(gè)功能,只需要執(zhí)行這個(gè)函數(shù)方法即可,不需要再重復(fù)的編寫代碼。 關(guān)于js中面向?qū)ο蟮睦斫?面向?qū)ο缶幊?oop) 它是一種編程思想 (object-oriented programming ), 我們的編程或者學(xué)習(xí)其...
閱讀 1065·2019-08-30 15:55
閱讀 3511·2019-08-30 13:10
閱讀 1336·2019-08-29 18:45
閱讀 2418·2019-08-29 16:25
閱讀 2174·2019-08-29 15:13
閱讀 2491·2019-08-29 11:29
閱讀 613·2019-08-26 17:34
閱讀 1558·2019-08-26 13:57