作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于许多 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/
在 Rails 中,您可以使用嵌套路由为 has_one 和 has_many 关系创建 RESTful 路由。可以在 Rails Guides 上找到示例 请问有没有什么好的方法可以为habtm关系
我是一名优秀的程序员,十分优秀!