我想知道是否可以在Javascript中为动态属性设置一个setter?
所以这:
var myobj = new MyObj();
myobj.a_custom_prop = 'something';
Run Code Online (Sandbox Code Playgroud)
会调用一个能够检索'a_custom_prop'和'something'的函数
要清楚,我想要一个类似于以下的功能:
MyObj.property.define = function (prop, value) { };
Run Code Online (Sandbox Code Playgroud)
被称为这样:
myobj.prop = value;
Run Code Online (Sandbox Code Playgroud)
代替:
myobj.define('prop', value);
Run Code Online (Sandbox Code Playgroud)
知道属性的名称相对于静态不是静态的myobj,否则我会使用:
Object.defineProperty(MyObj.prototype, 'a_custom_prop', {
set: function (value) { /*...*/ }
});
Run Code Online (Sandbox Code Playgroud)
您想要的类似于method missing在 Ruby 中,您定义一个函数来处理对未定义方法的调用。
正如您可以在此处阅读:Javascript 是否具有类似于 Ruby 的 method_missing 功能? JavaScript 还没有类似的东西,但是有一个针对 ES6 的提案: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |