我试图让我的一个选项依赖于另一个选项。
我认为最简单的解释一下我想在代码中做些什么。所以,下面基本上就是我要做的 -
settings = {
something : '#something',
something_else: something + '_else'
// I'd like something_else to map to '#something_else' now
}
如您所见,我希望能够依赖以前的键/值对作为另一个默认选项。那可能吗?如果是这样,我该如何实现呢?
注意:我收到了'参考错误:某些内容未定义'
答案 0 :(得分:1)
不,你不能像这样制作一个自我引用的JavaScript对象。你必须用两件事做这件事:
// options is the usual plugin options objects that comes in an argument.
var defaults = {
something: '#something'
};
var generated = {
something_else: '_else'
};
options = $.extend({ }, defaults, options);
for(var p in generated) {
if(!p.hasOwnProperty(p) || p in options)
continue;
options[p] = options.something + generated[p];
}
你可以试试这个:
var defaults = {
something: '#something',
something_else: '#something_else'
};
但是,如果他们以非默认something_else
发送邮件,那么您必须在options
合并后修复something
;在此修正过程中,通过options
,您必须确保不会覆盖非默认something_else
。