是否可以在javascript对象上创建一个与C#中的属性类似的属性。
实施例: 我使用dojo创建了一个自动调整大小的textarea小部件。为了从我的小部件中获取“value”属性,我已经连接到onchange事件,并且每次textarea的值发生变化时我都会设置一个变量。
有没有办法在不挂钩onchange事件的情况下完成此任务。
修改
换句话说,是否可以在JavaScript中写一些行为类似于getter和/或setter的内容。
答案 0 :(得分:15)
ECMAScript 5实现中可能包含recent versions of all major browsers。 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中不可用。
答案 1 :(得分:-1)
我不确定你在这里问的是什么。您始终可以在没有onchange事件的情况下获取textarea的值。你必须得到对象,然后看看value属性。
例如,如果你的textarea有一个id =“mytext”你可以做
var mytextarea = document.getElementById("mytext");
var text = mytextarea.value;