【发布时间】:2018-07-26 15:46:07
【问题描述】:
为什么Element.__proto__ === Node 返回真?每个函数的__proto__ 值都是function () {}。如何使具有 __proto__ 值的函数成为另一个函数?
【问题讨论】:
标签: javascript prototype prototype-programming prototype-chain
为什么Element.__proto__ === Node 返回真?每个函数的__proto__ 值都是function () {}。如何使具有 __proto__ 值的函数成为另一个函数?
【问题讨论】:
标签: javascript prototype prototype-programming prototype-chain
每个函数的
__proto__值都是function () {}。
不,不是每个函数都直接继承自 Function.prototype。
我怎样才能使具有
__proto__值的函数成为另一个函数?
使用class extends … 是最常见的模式——子类构造函数将直接从父类构造函数继承静态属性(在原型对象相互继承之后)。您也可以使用Object.setPrototypeOf 或inheriting from Function 来完成。
【讨论】:
super() 将指向超类的构造函数并且静态属性将被继承
Child.__proto__ = Object.create(Parent)?
Object.setPrototypeOf 或inheriting from Function 来完成。请注意,Object.create 不是必需的,也不能创建函数。另外,__proto__ 已弃用,请勿使用。
__proto__函数继承方法吗?就像这里的Node 和Element,但我没有看到任何继承的方法。