我想知道是否可以在 Javascript 中为动态属性设置一个 setter ?
所以这样:
var myobj = new MyObj();
myobj.a_custom_prop = 'something';
将调用一个能够检索“a_custom_prop”和“某物”的函数
明确地说,我想要一个类似于以下的函数:
MyObj.property.define = function (prop, value) { };
这样调用:
myobj.prop = value;
代替:
myobj.define('prop', value);
知道属性的名称相对于myobj
不是静态的,否则我会使用:
Object.defineProperty(MyObj.prototype, 'a_custom_prop', {
set: function (value) { /*...*/ }
});
最佳答案
您想要的类似于 Ruby 中的 method missing
,您可以在其中定义一个函数来处理对未定义方法的调用。
您可以在这里阅读:Does Javascript have something like Ruby's method_missing feature? JavaScript 还没有类似的东西,但是有一个针对 ES6 的提议: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
关于javascript - javascript中动态属性的 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29965105/