JavaScript使用Prototype實(shí)現(xiàn)面向?qū)ο蟮姆椒?/h1>
更新時(shí)間:2015年04月14日 11:07:48 作者:秋風(fēng)秋雨
這篇文章主要介紹了JavaScript使用Prototype實(shí)現(xiàn)面向?qū)ο蟮姆椒?實(shí)例分析了Prototype屬性的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了JavaScript使用Prototype實(shí)現(xiàn)面向?qū)ο蟮姆椒ā7窒斫o大家供大家參考。具體分析如下:
prototype 是 Function 對象的一個(gè)屬性,這個(gè)屬性指向另一個(gè)對象。 這個(gè)對象的所有屬性和方法,都會被構(gòu)造函數(shù)的實(shí)例繼承。
同時(shí) prototype 又存在一個(gè)指向構(gòu)造函數(shù)的引用 constructor,這樣就成功的構(gòu)成一個(gè)循環(huán)引用的原型鏈結(jié)構(gòu)。
我們可以把那些不變的屬性和方法,直接定義在 prototype 對象上, 節(jié)省內(nèi)存開銷。
function Cat(name, color) {
this.name = name;
this.color = color;
}
Cat.prototype.type = 'mammal';
Cat.prototype.eat = function() {
console.log('eat fish');
};
var cat1 = new Cat('Kitty', 'white');
var cat2 = new Cat('Smokey', 'black');
console.log(cat1.type); // mammal
console.log(cat1.eta === cat2.eta);
// TRUE, same reference
console.log(cat1.constructor === Cat)
// TRUE, from Person.prototype
希望本文所述對大家的javascript程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
相關(guān)文章
-
JavaScript中的undefined學(xué)習(xí)總結(jié)
這篇文章主要是對JavaScript中的undefined進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助 2013-11-11
-
關(guān)于Javascript作用域鏈的八點(diǎn)總結(jié)
其實(shí)吧,關(guān)于作用域鏈相關(guān)的文章我也看了不少,但是我一直也沒能做一個(gè)詳細(xì)的總結(jié),今天把我看到的一些東西,結(jié)合自己的想法,總結(jié)成以下8個(gè)點(diǎn) 2013-12-12
-
Angular組件拿不到@Input輸入屬性問題探究解決方法
最近在工作中實(shí)現(xiàn)一個(gè)feature的時(shí)候,碰到一個(gè)小問題:Angular組件拿不到@Input輸入屬性的問題,盡管對這些問題都比較了解,但是找問題是需要一個(gè)過程的,所以還是把這個(gè)問題總結(jié)記錄了下 2023-01-01
-
JavaScript中實(shí)現(xiàn)無縫滾動、分享到側(cè)邊欄實(shí)例代碼
本文給通過js代碼實(shí)現(xiàn)無縫滾動,側(cè)邊欄效果,在項(xiàng)目中經(jīng)常會遇到,下面小編把代碼整理分享到腳本之家平臺,供大家參考 2016-04-04
-
微信小程序通過點(diǎn)擊事件傳參(data-)的操作示例
微信小程序可以通過直接寫 data-index="1" 進(jìn)行數(shù)據(jù)的綁定 ,利用 bindtap 點(diǎn)擊事件執(zhí)行函數(shù)從而獲取到參數(shù)信息,本文給大家介紹微信小程序通過點(diǎn)擊事件傳參(data-)的操作,感興趣的朋友一起看看吧 2023-12-12
-
在JavaScript中構(gòu)建ArrayList示例代碼
這篇文章主要介紹了在JavaScript中構(gòu)建ArrayList,很實(shí)用,需要的朋友可以參考下 2014-09-09
最新評論
本文實(shí)例講述了JavaScript使用Prototype實(shí)現(xiàn)面向?qū)ο蟮姆椒ā7窒斫o大家供大家參考。具體分析如下:
prototype 是 Function 對象的一個(gè)屬性,這個(gè)屬性指向另一個(gè)對象。 這個(gè)對象的所有屬性和方法,都會被構(gòu)造函數(shù)的實(shí)例繼承。
同時(shí) prototype 又存在一個(gè)指向構(gòu)造函數(shù)的引用 constructor,這樣就成功的構(gòu)成一個(gè)循環(huán)引用的原型鏈結(jié)構(gòu)。
我們可以把那些不變的屬性和方法,直接定義在 prototype 對象上, 節(jié)省內(nèi)存開銷。
function Cat(name, color) { this.name = name; this.color = color; } Cat.prototype.type = 'mammal'; Cat.prototype.eat = function() { console.log('eat fish'); }; var cat1 = new Cat('Kitty', 'white'); var cat2 = new Cat('Smokey', 'black'); console.log(cat1.type); // mammal console.log(cat1.eta === cat2.eta); // TRUE, same reference console.log(cat1.constructor === Cat) // TRUE, from Person.prototype
希望本文所述對大家的javascript程序設(shè)計(jì)有所幫助。
相關(guān)文章
JavaScript中的undefined學(xué)習(xí)總結(jié)
這篇文章主要是對JavaScript中的undefined進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11關(guān)于Javascript作用域鏈的八點(diǎn)總結(jié)
其實(shí)吧,關(guān)于作用域鏈相關(guān)的文章我也看了不少,但是我一直也沒能做一個(gè)詳細(xì)的總結(jié),今天把我看到的一些東西,結(jié)合自己的想法,總結(jié)成以下8個(gè)點(diǎn)2013-12-12Angular組件拿不到@Input輸入屬性問題探究解決方法
最近在工作中實(shí)現(xiàn)一個(gè)feature的時(shí)候,碰到一個(gè)小問題:Angular組件拿不到@Input輸入屬性的問題,盡管對這些問題都比較了解,但是找問題是需要一個(gè)過程的,所以還是把這個(gè)問題總結(jié)記錄了下2023-01-01JavaScript中實(shí)現(xiàn)無縫滾動、分享到側(cè)邊欄實(shí)例代碼
本文給通過js代碼實(shí)現(xiàn)無縫滾動,側(cè)邊欄效果,在項(xiàng)目中經(jīng)常會遇到,下面小編把代碼整理分享到腳本之家平臺,供大家參考2016-04-04微信小程序通過點(diǎn)擊事件傳參(data-)的操作示例
微信小程序可以通過直接寫 data-index="1" 進(jìn)行數(shù)據(jù)的綁定 ,利用 bindtap 點(diǎn)擊事件執(zhí)行函數(shù)從而獲取到參數(shù)信息,本文給大家介紹微信小程序通過點(diǎn)擊事件傳參(data-)的操作,感興趣的朋友一起看看吧2023-12-12在JavaScript中構(gòu)建ArrayList示例代碼
這篇文章主要介紹了在JavaScript中構(gòu)建ArrayList,很實(shí)用,需要的朋友可以參考下2014-09-09