如何通过匿名函数给对象属性赋值

How to assign a value to object property via anonymous function?

本文关键字:对象 属性 赋值 函数 何通过      更新时间:2023-09-26

假设我有一个接受参数的函数。

在这种情况下,我使用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作为布尔属性,而不是函数。

我的主要对象是使用函数"模拟"布尔值,如remove: true

如果options.remove是一个函数,那么您必须实际调用它:

options.remove()

如果你想让这个工作只与options.remove,你必须定义一个getter属性:

var options = {
    byRow:    true,
    property: 'height'
};
Object.defineProperty(options, 'remove', {
    get: function () { return true; }
});
console.log(options.remove);

您的方法应该有效-请参阅以下代码片段:

var options = {
    byRow:    true,
    property: 'height',
    // remove:   true,
    remove: function(){ return true; }
};
function myFunc(options) {
  console.log(options.remove())
}
myFunc(options)