是否可以在javascript对象上创建一个与C#中的属性类似的属性。
例: 我使用dojo创建了一个自动调整大小的textarea小部件。为了从我的小部件中获取“value”属性,我已经连接到onchange事件,并且每次textarea的值发生变化时我都会设置一个变量。
有没有办法在不挂钩onchange事件的情况下完成此任务。
编辑
换句话说,是否可以在JavaScript中编写类似于getter和/或setter的东西。
是否可以在javascript对象上创建一个与C#中的属性类似的属性。
例: 我使用dojo创建了一个自动调整大小的textarea小部件。为了从我的小部件中获取“value”属性,我已经连接到onchange事件,并且每次textarea的值发生变化时我都会设置一个变量。
有没有办法在不挂钩onchange事件的情况下完成此任务。
编辑
换句话说,是否可以在JavaScript中编写类似于getter和/或setter的东西。
它可以在ECMAScript 5实现中包含 所有主流浏览器的最新版本。 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中不可用。
我不确定你在这里问什么。您始终可以在没有onchange事件的情况下获取textarea的值。你必须得到对象,然后看看value属性。
例如,如果您的textarea有id =“mytext”,您可以这样做
var mytextarea = document.getElementById("mytext");
var text = mytextarea.value;
它可以在ECMAScript 5实现中包含 所有主流浏览器的最新版本。 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中不可用。
我不确定你在这里问什么。您始终可以在没有onchange事件的情况下获取textarea的值。你必须得到对象,然后看看value属性。
例如,如果您的textarea有id =“mytext”,您可以这样做
var mytextarea = document.getElementById("mytext");
var text = mytextarea.value;