考虑:有一个想要复用的对象,并且想要创建的第二个对象需要从第一个对对象中获取其功能。
实现如下:
//要继承的对象 var parent = { name:"Papa" }; //新对象 var child = object(parent); console.log(child.name);
object函数实现如下:
//原型继承 function object(o){ function F(){}; F.prototype = o; return new F(); };
讨论:
可以使用构造函数创建父对象,这样做的话,“自身”属性和构造函数的原型属性都会被继承。
//父构造函数 function Person(){ this.name = "jie"; }; //添加到原型的属性 Person.prototype.getName = function(){ return this.name; }; var papa = new Person(); var kid = object(papa); //测试 console.log(kid.getName());
本模式的另一种变化,可以选择仅继承现有构造函数的原型对象。
//父构造器 function Person(){ this.name ="jie"; } //添加到原型的属性 Person.prototype.getName = function() { return this.name; } var kid = object(Person.prototype); console.log(typeof kid.name); //结果"undefined" console.log(typeof kid.getName); //结果"function"
时间: 2024-10-10 18:21:48