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