首页 > 解决方案 > 用户定义的函数如何在 javascript 中继承原型属性

问题描述

我很困惑,有人可以指导一下,在javascript中,如果Function对象(Function.prototype)的原型属性没有原型属性,那么用户定义的函数怎么会自动拥有它的原型属性。喜欢

function f(){
}
f.prototype.

谢谢

标签: javascriptfunctionobjectprototype

解决方案


JavaScript 中几乎所有的对象都有原型属性。通过使用它,更具体地说是原型链,我们可以模拟继承。原型是对另一个对象的引用,当 JS 在当前对象上找不到您要查找的属性时,就会使用它。简单地说,每当你调用一个对象的属性并且它不存在时,JavaScript 就会去原型对象那里寻找它。如果找到它,它将使用它,如果没有,它将转到该对象的属性并查看那里。这可以在返回 undefined 之前一直冒泡到 Object.prototype。这是原型链的本质,也是 JavaScript 继承背后的行为。

function Animal(name) {
    this.name = name;
}

Animal.prototype.sleep = function() {
    console.log(this.name + ': Zzz...');
}

function Dog(name) {
    this.name = name;
}

// Create a reference for the prototype
Dog.prototype = Object.create(new Animal());

Dog.prototype.makeSound = function() {
    console.log(this.name + ': Woof woof!');
}

var dog = new Dog('Lassie');
dog.makeSound(); // Lassie: Woof woof!
dog.sleep(); // Lassie: Zzz...
dog.missing(); // Throws Error

完整参考:https ://hackernoon.com/understanding-javascript-prototype-and-inheritance-d55a9a23bde2


推荐阅读