js的原型继承小结

考虑:有一个想要复用的对象,并且想要创建的第二个对象需要从第一个对对象中获取其功能。

实现如下:

//要继承的对象
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"
原文地址:https://www.cnblogs.com/scnuwangjie/p/5002768.html