摘要:一構(gòu)造一個(gè)對(duì)象相當(dāng)于中的有參構(gòu)造函數(shù)二對(duì)象實(shí)例隱式傳遞指針女女三與總結(jié)與中每個(gè)對(duì)象都有一個(gè)屬性建立兩個(gè)對(duì)象之間的關(guān)聯(lián)一個(gè)對(duì)象可以使
一、構(gòu)造一個(gè)Person對(duì)象(相當(dāng)于Java中的有參構(gòu)造函數(shù))
function person(name, sex, age, addr, salary) { this.name = name; this.sex = sex; this.age = age; this.addr = addr; this.salary = salary; }二、對(duì)象實(shí)例隱式傳遞this指針
person.prototype.func_pro=function () { console.log(this); }; let Sakura =new person("Sakura","女",16,"FateStayNight",10000000000); let Illyasviel= new person("Illyasviel ","女",14,"FateStayNight",9999999999); Sakura.func_pro(); Illyasviel.func_pro(); console.log("-------------------------------------------------------" + " ");三、new 與 prototype
1、總結(jié):
console.log("new 與 prototype"); //1、let variable ={}; //2、nodejs中每個(gè)對(duì)象都有一個(gè)__proto__屬性 // 建立兩個(gè)對(duì)象之間的關(guān)聯(lián): // 一個(gè)對(duì)象可以使用__proto__關(guān)聯(lián)另外一個(gè)對(duì)象 // __proto__(對(duì)象的內(nèi)部原型的引用): prototype(對(duì)象的原型) 淺拷貝 // __proto__與prototype指向同一個(gè)對(duì)象的引用 //3、 對(duì)象實(shí)例作為this指針的指向 傳遞給后面的函數(shù) //4、 調(diào)用這個(gè)函數(shù)
2、可以通過(guò)prototype.key=value 來(lái)擴(kuò)充對(duì)象Elf
function Elf(name) { this.name =name; console.log("Elf "+name); } console.log("可以通過(guò)prototype.key=value 來(lái)擴(kuò)充對(duì)象Elf"); Elf.prototype.love=function () { console.log("%s love "DATE A LIVE!"", this.name); }; let Yuzuru = new Elf("Yuzuru"); let Kaguya = new Elf("Kaguya"); Yuzuru.love(); Kaguya.love(); console.log("-------------------------------------------------------" + " ");
3、 實(shí)例.__proto__ 與 方法.prototype指向 同一個(gè)對(duì)象的引用
console.log("實(shí)例.__proto__ 與 方法.prototype指向 同一個(gè)對(duì)象的引用"); console.log(Yuzuru.__proto__); console.log(Elf.prototype); console.log("-------------------------------------------------------" + " "); let func_data =function(){ console.log("func_data"); }; func_data.prototype.func_test=function(){ console.log("func_test",this); };// 實(shí)例.__proto__ 與 方法.prototype指向 同一個(gè)對(duì)象的引用 console.log("實(shí)例.__proto__ 與 方法.prototype指向 同一個(gè)對(duì)象的引用"); console.log(Yuzuru.__proto__); console.log(Elf.prototype); console.log("-------------------------------------------------------" + " "); let func_data =function(){ console.log("func_data"); }; func_data.prototype.func_test=function(){ console.log("func_test",this); };
4、實(shí)例.__proto__ 與 方法.prototype 分別屬于2個(gè)不同的字典表{}
console.log("實(shí)例.__proto__ 與 方法.prototype指向 分別屬于2個(gè)不同的字典表{}"); let data =new func_data(); data.name="Innocence"; data.__proto__.func_test(); data.func_test(); console.log("-------------------------------------------------------" + " ");
5、可以將對(duì)象實(shí)例看做為一張字典表
//可以將data看做1張表 console.log("可以將data看做1張表"); //隱式調(diào)用this data.func_test(); //顯示調(diào)用this 將data作為this傳遞給data._proto_對(duì)象里的函數(shù)test_func data.__proto__.func_test.call(data); console.log("-------------------------------------------------------" + " ");
6、調(diào)用取值的順序
data.func_test=function () { console.log("new func_test",this); }; data.func_test(); //data.key_func 首先會(huì)到對(duì)象實(shí)例的表里搜索是否有沒(méi)有這樣的key 若沒(méi)有再到其__proto__里面搜索
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/101154.html
摘要:一實(shí)體類的定義定義類有參構(gòu)造方法二定義方法以設(shè)置實(shí)體類的屬性值方法三定義方法以獲取實(shí)體類的屬性值方法四構(gòu)造實(shí)例對(duì)象使用全參構(gòu)造方法獲取實(shí)例對(duì)象桐人男控制臺(tái)打印實(shí)例 一、Node.js 實(shí)體類 的定義 //定義類Person 有參構(gòu)造方法 function Person(name, sex, age, addr, salary) { this.name = name; t...
簡(jiǎn)介 類的概念,本身在javascript的語(yǔ)言上是不存在的, 但由于最近人們使用ES6語(yǔ)法,TS語(yǔ)言上都會(huì)有的class extends 繼承的概念, 下面我們需要使用原生js, 結(jié)合原型鏈,實(shí)現(xiàn)類的 繼承,多態(tài) ES5實(shí)現(xiàn)繼承 原型繼承 借用構(gòu)造函數(shù)繼承 mixin 復(fù)制繼承 寄生繼承 原型繼承方式 原型繼承, 主要利用對(duì)象的原型鏈 __proto__, 每一個(gè)對(duì)象都擁有__proto__...
摘要:借用構(gòu)造函數(shù)借助或使用構(gòu)造函數(shù)缺少函數(shù)復(fù)用原型鏈繼承使用指向?qū)ο笞宇悷o(wú)法給父類傳遞參數(shù)無(wú)法使用字面量添加新方法所有子類對(duì)象共享父類所有方法和屬性引用類型組合繼承借用構(gòu)造函數(shù)對(duì)實(shí)例屬性繼承對(duì)共享方法繼承會(huì)調(diào)用兩次父類構(gòu)造函數(shù)繼承 借用構(gòu)造函數(shù),借助call或apply,使用Superclass構(gòu)造函數(shù),缺少函數(shù)復(fù)用 function Superclass(name = default) ...
摘要:一簡(jiǎn)介與的關(guān)系是的規(guī)格,是的一種實(shí)現(xiàn)另外的方言還有和轉(zhuǎn)碼器命令行環(huán)境安裝直接運(yùn)行代碼命令將轉(zhuǎn)換成命令瀏覽器環(huán)境加入,代碼用環(huán)境安裝,,根目錄建立文件加載為的一個(gè)鉤子設(shè)置完文件后,在應(yīng)用入口加入若有使用,等全局對(duì)象及上方法安裝 一、ECMAScript6 簡(jiǎn)介 (1) 與JavaScript的關(guān)系 ES是JS的規(guī)格,JS是ES的一種實(shí)現(xiàn)(另外的ECMAScript方言還有Jscript和...
摘要:當(dāng)我們的視圖和數(shù)據(jù)任何一方發(fā)生變化的時(shí)候,我們希望能夠通知對(duì)方也更新,這就是所謂的數(shù)據(jù)雙向綁定。返回值返回傳入函數(shù)的對(duì)象,即第一個(gè)參數(shù)該方法重點(diǎn)是描述,對(duì)象里目前存在的屬性描述符有兩種主要形式數(shù)據(jù)描述符和存取描述符。 前言 談起當(dāng)前前端最熱門(mén)的 js 框架,必少不了 Vue、React、Angular,對(duì)于大多數(shù)人來(lái)說(shuō),我們更多的是在使用框架,對(duì)于框架解決痛點(diǎn)背后使用的基本原理往往關(guān)注...
閱讀 3903·2021-10-12 10:12
閱讀 1541·2021-10-11 10:58
閱讀 2381·2021-10-09 10:01
閱讀 2684·2021-09-24 09:48
閱讀 2780·2021-09-09 11:38
閱讀 3587·2019-08-30 15:44
閱讀 1804·2019-08-30 14:22
閱讀 576·2019-08-29 12:42