我想執行存儲在變量中的函數並將params傳遞給它。但是,在.apply
行上,我收到錯誤; Uncaught TypeError: Cannot call method 'apply' of undefined
執行窗口[func] .apply(this,args)
小提琴: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!');
});
給出無論它所說的那樣,如果你改變的onload爲「無包裝 - 頭」它的工作原理 –
這可能與'(功能(將其包裝){...} )();'wrapper。我不知道無包裝的選項,謝謝。 – Blender