[英]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.