javascript - javascript中动态属性的 setter

标签 javascript

我想知道是否可以在 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/

相关文章:

javascript - 响应式(Reactive)编程的初学者问题

javascript - [google-drive-api]如何处理 google API 的 get() alt=media 响应

javascript - 是否可以将匿名函数标记为 "Live Code"以便 Closure Compiler 不删除它?

JavaScript 折叠菜单树

javascript - Handlebars js : render multiple passes with nested templates

Javascript 将日期字符串转换为对象

javascript - 纯 CSS 导航栏 :Hover on List not staying

JavaScript:保存实体,可以写得更好吗?

javascript - 如何清除网络请求electronjs中的缓存statusCode?

javascript - 如何保留网站的 "theme"并添加新的动态页面?