跳到主要内容

js中的原型

阅读需 1 分钟

prototype

所有的函数都有一个prototype属性 将函数看成是一个普通的对象时,它具备__proto__属性

构造函数Parent有一个原型对象Parent.prototype上面有一个constructor Parent可以通过 prototype 指向原型 原型Parent.prototype可以通过constructor指向构造函数

function Parent() {
this.name = "parent";
}

var p = new Parent();
console.log(p.__proto__ === Parent.prototype); // true

__proto__是一个指向原型对象的指针,它指向的是Parent.prototype 可以使用 getPrototypeOf

如果要创建一个新的对象同时继承另一个对象的属性,可以使用Object.create

function Parent() {
this.name = "parent";
}
var p = new Parent();
var p1 = Object.create(p);

创造原型对象的方法

function createObject(o) {
function f() {}
f.prototype = o;
return new f();
}
//创建对象的过程
function inherit(Subtype, Supertype) {
Subtype.prototype = createObject(Supertype);
Object.defineProperty(Subtype.prototype, "constructor", {
enumerable: false,
configurable: true,
writable: true,
vlaue: Subtype,
});
}
//寄生式函数

这种方法是将子类的原型对象指向父类的原型对象,同时将子类的原型对象的构造函数指向子类

Loading Comments...