最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Create javascript property like C# property - Stack Overflow

programmeradmin2浏览0评论

Is it possible to create a property on a javascript object that behaves similar to a property in C#.

Example: I've created an auto-sizing textarea widget using dojo. In order to get the "value" property out of my widget, I've hooked up to the onchange event and I'm setting a variable everytime the value of the textarea changes.

Is there a way to acplish this without hooking up to the onchange event.

Edit

In other words, is it possible to write something in JavaScript that behaves like getters and/or setters.

Is it possible to create a property on a javascript object that behaves similar to a property in C#.

Example: I've created an auto-sizing textarea widget using dojo. In order to get the "value" property out of my widget, I've hooked up to the onchange event and I'm setting a variable everytime the value of the textarea changes.

Is there a way to acplish this without hooking up to the onchange event.

Edit

In other words, is it possible to write something in JavaScript that behaves like getters and/or setters.

Share Improve this question edited Jul 8, 2010 at 23:13 Seattle Leonard asked Jul 8, 2010 at 22:48 Seattle LeonardSeattle Leonard 6,7763 gold badges29 silver badges37 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 17

It is possible in ECMAScript 5 implementations, which include recent versions of all major browsers. The ECMAScript 5 spec adds standardized getters and setters. One quirk is that IE 8 has this feature, but only on DOM nodes. This is what the syntax looks like:

var obj = {};

Object.defineProperty(obj, "value", {
    get: function () {
        return this.val;
    },
    set: function(val) {
        this.val = val;
    }
});

There has also been a proprietary implementation of getters and setters in Mozilla for a long time that was also later adopted by WebKit and Opera but this is not available in IE.

I'm not sure what you're asking here. You can always get the value of a textarea without the onchange event. you'd have to get the object then look at the value property.

for example, if your textarea has an id="mytext" you can do

var mytextarea = document.getElementById("mytext");
var text = mytextarea.value;
发布评论

评论列表(0)

  1. 暂无评论