假设我有一个带参数的函数。
在这种情况下,我使用matchHeight,但我的问题是一般的。
我将所有选项都设置在这样的变量中。
var options = {
byRow: true,
property: 'height',
remove: true,
};
然后将其传递给函数:
$('.some_class').matchHeight(options);
现在,我希望能够使用函数动态评估'remove'属性。我的猜测是使用这样的东西:
var options = {
byRow: true,
property: 'height',
// remove: true,
remove: function(){ return true; }
};
但是,它不起作用。这样做的正确方法是什么? 更新:更清楚。 matchHeight将remove删除为boolean property,而不是函数。
我的主要目标是使用函数“模拟”一个布尔值,例如remove: true
。
答案 0 :(得分:2)
如果options.remove
是一个函数,那么你必须实际调用它:
options.remove()
如果您想仅使用options.remove
来完成此工作,则必须define the property with a getter:
var options = {
byRow: true,
property: 'height'
};
Object.defineProperty(options, 'remove', {
get: function () { return true; }
});
console.log(options.remove);
答案 1 :(得分:1)
您的方法应该有效 - 请参阅此片段:
var options = {
byRow: true,
property: 'height',
// remove: true,
remove: function(){ return true; }
};
function myFunc(options) {
console.log(options.remove())
}
myFunc(options)