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