原型式繼承函式
阿新 • • 發佈:2022-03-20
前邊繼承雖然我們也 var p=new Person() Student.prototype=p 但是這種方式會在new Person()的時候執行Person,會有很多弊端
這裡我們採用使用原型式繼承函式,來建立類似於之前的p,但是有點是,不用多次去呼叫函式,直接舉例子
1 var obj = { 2 name: 'tyy', 3 age: 18 4 } 5 // 我們想要構造物件newobj,讓該想要繼承物件的原型指向newobj,而newobj的原型指向obj 6 //方法一 7 function object(obj) {8 var newobj = {} 9 Object.setPrototypeOf(newobj, obj) //Object裡面的一個方法,設定newobj的原型指向obj 10 return newobj 11 } 12 //方法二 通過一個函式原型當中轉 13 function createobject(o) { 14 function Fn() {} 15 Fn.prototype = o 16 return new Fn() 17 } 18 //方法三,直接使用Object.create()方法 19 var stu3 = Object.create(obj)20 21 var stu1 = object(obj) 22 var stu2 = createobject(obj) 23 console.log(stu1.name); 24 console.log(stu2.name); 25 console.log(stu3.name);