gpt4 book ai didi

javascript - `apply` 没有 't work for function as object' 的属性

转载 作者:行者123 更新时间:2023-11-30 07:27:45 25 4
gpt4 key购买 nike

根据 JavaScript Patterns book (第 79 页),这应该有效:

 var ob = {
fn: function foo(m) {alert(m);}
};
fn.apply(ob,['m']);

它不起作用。

fn is not defined 错误抛出。

这 2 个工作正常:

ob.fn.apply(ob,['m']);

ob.fn.apply(null,['m']);

为什么 fn.apply(ob,['m']) 不起作用?无法获取。

最佳答案

fn 不起作用,因为它不是范围内的变量。如果定义了 window.fn,或者在别处定义了 var fn,那么您将能够以 fn.apply 的形式访问它。因为这些都没有定义,所以您需要使用对象上函数的完整路径:

ob.fn.apply(...);

如果您想要 fn 被定义,您可以简单地设置它:

var ob,
fn;

ob = {
fn:function(){...}
};
fn = ob.fn;

fn.apply(ob, ...);

关于javascript - `apply` 没有 't work for function as object' 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8897444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com