是否可以在 javascript 对象上创建一个行为类似于 C# 中的属性的属性。
例子:
我使用 dojo 创建了一个自动调整大小的文本区域小部件。为了从我的小部件中获取“value”属性,我连接了 onchange 事件,并且每次文本区域的值发生变化时我都会设置一个变量。
有没有一种方法可以在不连接 onchange 事件的情况下完成此任务。
Edit
换句话说,是否有可能在 JavaScript 中编写一些行为类似于 getter 和/或 setter 的东西。
在 ECMAScript 5 实现中是可能的,其中包括所有主要浏览器的最新版本 http://kangax.github.com/es5-compat-table/。 ECMAScript 5 规范添加了标准化的 getter 和 setter。一个奇怪的地方是 IE 8 具有此功能,但仅在 DOM 节点上。语法如下:
var obj = {};
Object.defineProperty(obj, "value", {
get: function () {
return this.val;
},
set: function(val) {
this.val = val;
}
});
Mozilla 中长期以来也有 getter 和 setter 的专有实现,后来也被 WebKit 和 Opera 采用,但这在 IE 中不可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)