gpt4 book ai didi

javascript - 为什么在另一个函数的参数中传递函数会在 Javascript 中产生意想不到的结果

转载 作者:行者123 更新时间:2023-11-30 10:58:45 26 4
gpt4 key购买 nike

每当我尝试运行这个代码时,请找到下面的代码,它会给出一些随机整数值,为什么会这样。有人可以解释输出中发生了什么。

let user = {
name: "John",
sayHi: function(){
console.log(this.name);
}
}
let paramFunc = function(func){
func();
}
paramFunc(user.sayHi);

最佳答案

当你只是在没有上下文的情况下调用函数时,函数不知道对象。

您需要提供上下文,以便函数知道this 的含义:

let user = {
name: "John",
sayHi: function () {
console.log(this.name);
}
}
let paramFunc = function (func, context) {
func.bind(context)();
};
paramFunc(user.sayHi, user);

输出:

John

关于javascript - 为什么在另一个函数的参数中传递函数会在 Javascript 中产生意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58901042/

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