gpt4 book ai didi

javascript - 运行自定义函数 - settings.func 不是函数

转载 作者:行者123 更新时间:2023-11-30 18:44:29 25 4
gpt4 key购买 nike

我写了一个 jQuery 插件,我想像这样调用一个自定义函数...

(function($) {

$.fn.testPlugin= function(options) {

var settings = {
func: null
};

if (options) {
$.extend(settings, options);
}

settings.func();
};

})(jQuery);

在这种情况下,我想运行 doSomething 函数。

$(document).ready(function(){       

$('div').testPlugin({
func: 'doSomething'
});

});

function doSomething() {
alert('hello');
}

我总是得到错误 settings.func is not a function 所以我不得不使用:

eval(settings.func+"()");

代替:

settings.func();

这不理想!我为什么会得到这个有什么想法吗?

最佳答案

因为您要将字符串分配给 settings.func,而不是函数。字符串永远不是函数,即使它们包含函数的名称。

然而,函数是一等公民,这意味着您可以像使用任何其他变量一样使用它们,将它们分配给变量或将它们作为参数传递给其他函数。变化:

$('div').testPlugin({
func: 'doSomething'
});

$('div').testPlugin({
func: doSomething
});

它应该可以工作。

关于javascript - 运行自定义函数 - settings.func 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5868204/

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