gpt4 book ai didi

javascript - 执行 window[func].apply(this, args)

转载 作者:行者123 更新时间:2023-11-29 17:21:20 33 4
gpt4 key购买 nike

我正在尝试执行存储在变量中的函数并将参数传递给它。但是,在 .apply 行,我收到一个错误; 未捕获的 TypeError:无法调用未定义的方法“apply”

fiddle :http://jsfiddle.net/valamas/vzesm/

function target(msg)
{
alert(msg);
}

function mainfunc (func)
{
var args = new Array();
for (var i = 1; i < arguments.length; i++)
args.push(arguments[i]);

console.log('args: ' + args);

//-- different attempts
window[func].apply(this, args);
//window[func].apply(null, Array.prototype.slice.call(arguments, 1));
//this[func].apply(this, Array.prototype.slice.call(arguments, 1));
}


$(function ()
{
console.log('\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n');
console.log('ready');
mainfunc('target', 'hello,', 'there!');
});​

最佳答案

jsFiddle 没有将 JS 放入全局范围,所以 target 实际上不是 window 的属性。

添加此代码将使您的脚本工作:

window.target = target;

或者更明确地说:

window.target = function() { ...

演示:http://jsfiddle.net/Blender/vzesm/3/

关于javascript - 执行 window[func].apply(this, args),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12615575/

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