gpt4 book ai didi

javascript - 如何以类似 jQuery 的方式为函数设置选项

转载 作者:行者123 更新时间:2023-11-29 09:52:44 24 4
gpt4 key购买 nike

对于许多 jQuery 函数,您可以将选项对象传递给函数。在内部,这是覆盖函数的默认选项。我想象你可以通过以下方式做到这一点

function myFunc (userOptions) {
userOptions = userOptions || {};

var defaultOptions = {
'myOption': true;
};

var options = {
'myOption': userOptions.hasOwnProperty('myOption') ? userOptions.myOptions : defaultOptions.myOption;
};

...

if (options.myOption) {
//do stuff
}
}

虽然这确实很乏味,而且似乎容易出错,尤其是在维护时。所以我的问题是最简单、最安全的方法是什么?

最佳答案

明确是个不错的主意,因为它可以保持控制和清晰。但是,您可以做这样的事情:

var actualOptions = defaultOptions;
for(var property in userOptions) {
if(userOptions.hasOwnProperty(property)) {
actualOptions[property] = userOptions[property];
}
}

请注意,我说的是“类似”。上面其实有个小瑕疵,就是会覆盖 defaultOptions 对象。我会把它留给你来避免这种情况发生,循环是这里的核心思想。或者,如果您更喜欢 ECMAScript 5

var actualOptions = defaultOptions,
keys = Object.keys(userOptions);
for(var i = 0; i < keys.length; i++) {
actualOptions[keys[i]] = userOptions[keys[i]];
}

因为您已经在使用 jQuery,所以您可以在这里利用 jQuery 的能力,正如 Andreas 在评论中指出的那样,使用

var actualOptions = $.extend({}, defaultOptions, userOptions);

关于javascript - 如何以类似 jQuery 的方式为函数设置选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19035037/

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