什么是JS原型属性

60次阅读
没有评论

JavaScript中的每个对象都有一个原型(prototype)属性,它指向了另一个对象,这个对象是当前对象的父对象,也就是说当前对象可以通过原型属性继承父对象的属性和方法。

JavaScript中的原型属性是指在创建对象时所指定的原型对象。每个对象都有一个原型对象,可以通过Object.getPrototypeOf(obj)或obj.__proto__来获取对象的原型。

示例:

// 创建一个对象 person,指定它的原型为 obj
let obj = {name: "Tom"};
let person = Object.create(obj);

console.log(person.__proto__);  // 输出 {name: "Tom"}

在上述代码中,person对象的原型被设置为obj,所以person.__proto__指向了obj对象。

通过原型,我们可以实现对象之间的继承,如下所示:

// 定义一个Animal构造函数
function Animal() {
    this.type = "animal";
}

// 在Animal的原型对象上定义一个eat方法
Animal.prototype.eat = function() {
    console.log("I'm eating.");
}

// 定义一个Dog构造函数
function Dog(name) {
    this.name = name;
}

// 将Dog的原型对象指向Animal的实例
Dog.prototype = new Animal();

// 创建一个Dog实例
let dog = new Dog("Tom");

// 调用Dog实例的eat方法
dog.eat();  // 输出 "I'm eating."

在上述代码中,我们定义了一个Animal构造函数,通过在它的原型对象上定义一个eat方法,使得所有通过Animal构造函数创建的对象都可以访问这个方法。接着,我们定义了一个Dog构造函数,并将其原型对象指向了Animal的实例,从而实现了Dog继承了Animal的属性和方法。最后,我们创建了一个Dog实例,并调用了其eat方法。

正文完
 
评论(没有评论)