簡體   English   中英

如何通過匿名函數為對象屬性賦值?

[英]How to assign a value to object property via anonymous function?

假設我有一個帶參數的函數。

在這種情況下,我使用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) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM