fn.call()在被赋值给变量后会失败的原因是因为fn.call()是一个函数调用的语法,它用于改变函数的作用域并立即执行该函数。当将fn.call()赋值给一个变量时,实际上是将函数的返回值赋给了这个变量,而不是将函数本身赋给变量。
在JavaScript中,函数是一种特殊的对象,可以像其他对象一样被赋值给变量。但是,当一个函数调用被赋值给变量时,实际上是将函数的返回值赋给了这个变量。而fn.call()是一个函数调用,它返回的是函数执行的结果,而不是函数本身。
如果想要将fn.call()赋值给变量并保持其原有的功能,可以使用一个匿名函数来包装fn.call(),然后将这个匿名函数赋给变量。例如:
var myFunc = function() {
fn.call();
};
myFunc(); // 调用匿名函数,实际上执行了fn.call()
在这个例子中,myFunc变量被赋值为一个匿名函数,这个匿名函数内部调用了fn.call()。当调用myFunc()时,实际上执行了fn.call()。
需要注意的是,这里的fn.call()是一个示例,实际使用时需要根据具体的函数和参数进行调整。同时,腾讯云相关产品和产品介绍链接地址可以根据具体需求和场景进行选择,这里无法提供具体的推荐。
领取专属 10元无门槛券
手把手带您无忧上云