gpt4 book ai didi

JavaScript 上下文

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:53:10 28 4
gpt4 key购买 nike

var User = {
Name: "Some Name", Age: 26,
Show: function() { alert("Age= "+this.Age)};
};

function Test(fn) {
fn();
}

Test(User.Show);

===============

代码显示的警告是“Age= Undefined”。我理解 User.Show 函数是从 Test() 内部调用的,指的是“Test()”函数的“this”而不是“User”对象。请问有什么办法可以解决这个问题吗?

最佳答案

解决此问题的方法是在 Test 函数内部传入您将“this”限定到的对象...

function Test(fn, scope, args) {
fn.apply(scope, args);
}

Test(User.Show, User, []);

args 数组允许您额外传递任何您可能拥有的参数。您也可以保留 Test 函数,只传入一个匿名函数...

Test(function() {User.Show()});

关于JavaScript 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1798881/

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