成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

理解JS封裝

CastlePeaK / 2293人閱讀

摘要:把屬性和函數(shù)封裝成一個(gè)對(duì)象,然后從原型對(duì)象生成實(shí)例對(duì)象原始模式構(gòu)造函數(shù)模式模式原始模式根據(jù)上述規(guī)格生成實(shí)例或者寫一個(gè)函數(shù)直接返回對(duì)象的實(shí)例該方法的問(wèn)題是沒有建立實(shí)例之間的關(guān)系構(gòu)造函數(shù)模式配合操作符,將綁定在實(shí)例對(duì)象上實(shí)例的屬性將指向構(gòu)造函數(shù)

把屬性和函數(shù)封裝成一個(gè)對(duì)象,然后從原型對(duì)象生成實(shí)例對(duì)象

原始模式

構(gòu)造函數(shù)模式

prototype模式

原始模式

var Person = {
    name: "",
    age: ""
};

根據(jù)上述規(guī)格生成實(shí)例:

var p1 = {
    name: "Oliver",
    age: 18
};
var p2 = {
    name: "Troy",
    age: 24
};

或者寫一個(gè)函數(shù)直接返回對(duì)象的實(shí)例:

function Person(name, age) {
    return {
        name: name,
        age: age
    };
}
var p1 = Person("Oliver", 18);
var p2 = Person("Troy", 24);

該方法的問(wèn)題是沒有建立實(shí)例之間的關(guān)系

構(gòu)造函數(shù)模式

this配合new操作符,將this綁定在實(shí)例對(duì)象上:

function Person(name, age) {
    this.name = name;
    this.age = age;
}
var p1 = new Person("Oli", 18);
var p2 = new Person("Tro", 24);

實(shí)例的constructor屬性將指向構(gòu)造函數(shù):

console.log(p1.constructor); //Person(){}

instanceof運(yùn)算符檢驗(yàn)是否為該原型對(duì)象的實(shí)例:

console.log(p1 instanceof Person); //True

該方法會(huì)重復(fù)占用內(nèi)存

prototype模式

可以把重復(fù)的,不變的屬性和方法(就是共有的,不是私有的)放在原型的prototype對(duì)象上:

function Person(name, age) {
    this.name = name;
    this.age = age;
}
Person.prototype.sayName = function() {
    console.log(this.name);
};
Person.prototype.nationality = "Chinese";
var p1 = new Person("Oli", 18);
var p2 = new Person("Tro", 24);
p2.sayName(); //Tro
console.log(p1.nationality); //Chinese

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79166.html

相關(guān)文章

  • 《深入理解ES6》筆記——用模塊封裝代碼(13)

    摘要:模塊的定義模塊是自動(dòng)運(yùn)行在嚴(yán)格模式下并且沒有辦法退出運(yùn)行的代碼。數(shù)據(jù)模塊函數(shù)模塊類模塊模塊的導(dǎo)出給數(shù)據(jù)函數(shù)類添加一個(gè),就能導(dǎo)出模塊。數(shù)據(jù)模塊函數(shù)模塊類模塊模塊的引用在另外的文件中,我們可以引用上面定義的模塊。導(dǎo)入指定的模塊。 模塊的定義 模塊是自動(dòng)運(yùn)行在嚴(yán)格模式下并且沒有辦法退出運(yùn)行的JavaScript代碼。 模塊可以是函數(shù)、數(shù)據(jù)、類,需要指定導(dǎo)出的模塊名,才能被其他模塊訪問(wèn)。 //...

    Mr_houzi 評(píng)論0 收藏0
  • 《深入理解ES6》筆記——用模塊封裝代碼(13)

    摘要:模塊的定義模塊是自動(dòng)運(yùn)行在嚴(yán)格模式下并且沒有辦法退出運(yùn)行的代碼。數(shù)據(jù)模塊函數(shù)模塊類模塊模塊的導(dǎo)出給數(shù)據(jù)函數(shù)類添加一個(gè),就能導(dǎo)出模塊。數(shù)據(jù)模塊函數(shù)模塊類模塊模塊的引用在另外的文件中,我們可以引用上面定義的模塊。導(dǎo)入指定的模塊。 模塊的定義 模塊是自動(dòng)運(yùn)行在嚴(yán)格模式下并且沒有辦法退出運(yùn)行的JavaScript代碼。 模塊可以是函數(shù)、數(shù)據(jù)、類,需要指定導(dǎo)出的模塊名,才能被其他模塊訪問(wèn)。 //...

    tunny 評(píng)論0 收藏0
  • 深入理解 Javascript 之 JS封裝

    摘要:封裝常見的封裝類中的共有和私有執(zhí)行結(jié)果如下原因是調(diào)用的時(shí)候,指向的其實(shí)是,因此沒有輸出解決辦法更改指向工廠函數(shù)也有對(duì)于程序員來(lái)說(shuō)這三個(gè)關(guān)鍵字應(yīng)該是很熟悉的哈,但是在中,并沒有類似于這樣的關(guān)鍵字,但是我們又希望我們定義的屬性和方法有一定的訪問(wèn) 封裝 常見的封裝 function Person (name,age,sex){ this.name = name; this.a...

    張漢慶 評(píng)論0 收藏0
  • 深入理解ES6之《用模塊封裝代碼》

    摘要:導(dǎo)入模塊的代碼執(zhí)行后,實(shí)例化過(guò)的模塊被保存在內(nèi)存中,只要另一個(gè)語(yǔ)句引用它就可以重復(fù)使用它和的一個(gè)重要的限制是它們必須在其它語(yǔ)句和函數(shù)之外使用,也就是說(shuō)不允許出現(xiàn)在語(yǔ)句中,不能有條件導(dǎo)出或以任何方式動(dòng)態(tài)導(dǎo)出。 什么是模塊 模塊是自動(dòng)運(yùn)行在嚴(yán)格模式下并且沒有辦法退出運(yùn)行的Javascript代碼 在模塊的頂部this的值是undefined 其模塊不支持html風(fēng)格的代碼注釋除非用def...

    BigTomato 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<