【问题标题】:how a user defined function inherit prototype property in javascript用户定义的函数如何在 javascript 中继承原型属性
【发布时间】:2018-07-06 09:31:22
【问题描述】:
我很困惑,有人可以指导一下,在javascript中,如果Function对象(Function.prototype)的原型属性没有原型属性,那么用户定义的函数怎么会自动拥有它的原型属性。喜欢
function f(){
}
f.prototype.
谢谢
【问题讨论】:
标签:
javascript
function
object
prototype
【解决方案1】:
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