摘要:把屬性和函數(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
摘要:模塊的定義模塊是自動(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)。 //...
摘要:模塊的定義模塊是自動(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)。 //...
摘要:封裝常見的封裝類中的共有和私有執(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...
摘要:導(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...
閱讀 1502·2021-11-24 11:16
閱讀 2713·2021-07-28 12:32
閱讀 2315·2019-08-30 11:22
閱讀 1455·2019-08-30 11:01
閱讀 611·2019-08-29 16:24
閱讀 3559·2019-08-29 12:52
閱讀 1635·2019-08-29 12:15
閱讀 1346·2019-08-29 11:18