【问题标题】:__proto__ of a function in the DOM in JavascriptJavascript中DOM中函数的__proto__
【发布时间】:2018-07-26 15:46:07
【问题描述】:

为什么Element.__proto__ === Node 返回真?每个函数的__proto__ 值都是function () {}。如何使具有 __proto__ 值的函数成为另一个函数?

【问题讨论】:

    标签: javascript prototype prototype-programming prototype-chain


    【解决方案1】:

    每个函数的__proto__ 值都是function () {}

    不,不是每个函数都直接继承自 Function.prototype

    我怎样才能使具有__proto__ 值的函数成为另一个函数?

    使用class extends … 是最常见的模式——子类构造函数将直接从父类构造函数继承静态属性(在原型对象相互继承之后)。您也可以使用Object.setPrototypeOfinheriting from Function 来完成。

    【讨论】:

    • 是否可以不使用类来制作(因为它们是Javascript中的新内容,我想可以用不同的方式制作)。另外,将函数的 proto 设为另一个函数而不是 Function.prototype 有什么意义?使用它有哪些用法和示例?
    • @learningMath 在它们被使用的类中,因为super() 将指向超类的构造函数并且静态属性将被继承
    • 可以使用以下代码完成吗:Child.__proto__ = Object.create(Parent)?
    • @LearningMath 您也可以使用Object.setPrototypeOfinheriting from Function 来完成。请注意,Object.create 不是必需的,也不能创建函数。另外,__proto__ 已弃用,请勿使用。
    • @Bergi 你能举一个DOM函数的例子,其中一个函数从它的__proto__函数继承方法吗?就像这里的NodeElement,但我没有看到任何继承的方法。
    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2015-08-18
    • 2011-03-29
    • 2012-04-15
    相关资源
    最近更新 更多