Javascript 如何通过匿名函数为对象属性赋值?
假设我有一个接受参数的函数 在本例中,我使用的是,但我的问题是一般性的 我在一个变量中设置了所有选项,如下所示Javascript 如何通过匿名函数为对象属性赋值?,javascript,function,object,properties,eval,Javascript,Function,Object,Properties,Eval,假设我有一个接受参数的函数 在本例中,我使用的是,但我的问题是一般性的 我在一个变量中设置了所有选项,如下所示 var options = { byRow: true, property: 'height', remove: true, }; 然后将其传递给函数: $('.some_class').matchHeight(options); 现在,我希望能够使用函数动态计算'remove'属性。我猜是这样的: var options = { byRo
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视为一个函数,而不是一个函数
我的主要目标是使用函数“模拟”布尔值,例如
remove:true
。您的方法应该有效-请参阅以下代码片段:
var选项={
拜罗:没错,
属性:“高度”,
//删除:对,
remove:function(){return true;}
};
函数myFunc(选项){
console.log(options.remove())
}
myFunc(options)
如果options.remove
是一个函数,那么您必须实际调用它:
options.remove()
如果您只想使用选项。删除,您必须:
var选项={
拜罗:没错,
属性:“高度”
};
Object.defineProperty(选项“删除”{
get:function(){return true;}
});
console.log(options.remove)代码>什么是不工作?这个目标大体上是正确的。这取决于它在matchHeight
中的使用方式,但您尚未显示此代码。如果这不是你的代码,你就不能用布尔值替换那样的函数options.remove
vsoptions.remove()
,它们的调用方式不同options[“remove”]
?matchHeight将remove视为感谢。不,remove
是一个错误,不幸的是,您的代码不工作……请定义“不工作”。当您单击上面的“运行代码片段”时,它非常有效。