如何在对象中应用,绑定和调用方法

时间:2019-04-07 04:50:28

标签: javascript function object

我试图理解javascript中的原型继承,然后偶然发现了apply方法,该方法是Function.prototype的自有属性,但是当我尝试检查属性在Object上的存在时,它实际上也存在。现在,我感到困惑,因为我知道父级大多数对象是Object而不是Function。有人可以帮我理解吗?

要尝试我要说的话,只需在chrome控制台中运行它们即可。

Function.prototype.hasOwnProperty('apply') // o/p --> true


    Object.hasOwnProperty('apply'); // o/p --> false
    Object.prototype.hasOwnProperty('apply'); // o/p --> false
    Object.apply // o/p --> ƒ apply() { [native code] }

1 个答案:

答案 0 :(得分:1)

这取决于您在谈论哪个Object

函数 Object在其原型链中具有Function.prototypeObject.apply存在。

但是,它在实际对象上不存在。因此,apply仅可与Object一起用作静态方法(因为apply未附加到Object.prototype上):

const objectFunctionHasApply = Object.apply || false;
const literalObjectHasApply = ({}).apply || false;
console.log(objectFunctionHasApply);
console.log(literalObjectHasApply);