Создайте свойство javascript, например свойство С#

Можно ли создать свойство в объекте javascript, который ведет себя аналогично свойству в С#.

Пример: Я создал виджет с автоматической настройкой textarea, используя dojo. Чтобы получить свойство "value" из моего виджета, я подключился к событию onchange, и я устанавливаю переменную каждый раз, когда изменяется значение textarea.

Есть ли способ выполнить это, не подключаясь к событию onchange.

Изменить

Другими словами, можно ли что-то написать в JavaScript, который ведет себя как геттеры и/или сеттеры.

Ответы

Ответ 1

В реализациях ECMAScript 5 можно включить последние версии всех основных браузеров. Спецификация ECMAScript 5 добавляет стандартизированные геттеры и сеттеры. Одна из особенностей заключается в том, что IE 8 имеет эту функцию, но только на узлах DOM. Вот как выглядит синтаксис:

var obj = {};

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

В Mozilla уже давно реализована собственная реализация геттеров и сеттеров, которая также была позже принята WebKit и Opera, но это не доступно в IE.

Ответ 2

Я не уверен, что вы спрашиваете здесь. Вы всегда можете получить значение текстового поля без события onchange. вам нужно будет получить объект, а затем посмотреть на свойство value.

например, если ваш textarea имеет id = "mytext", вы можете сделать

var mytextarea = document.getElementById("mytext");
var text = mytextarea.value;