原型式继承函数

前边继承虽然我们也 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);

 

posted @ 2022-03-20 12:11  沁霓  阅读(48)  评论(0)    收藏  举报