Создайте свойство JavaScript как свойство C#

Действительно ли возможно создать свойство на объекте JavaScript, который ведет себя подобный свойству в C#.

Пример: я создал виджет текстовой области автокалибровки с помощью додзе. Для вытаскивания свойства "значения" из моего виджета я сцепился до onchange события, и я устанавливаю переменную каждый раз значение изменений текстовой области.

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

Править

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

11
задан Seattle Leonard 8 July 2010 в 23:13
поделиться

2 ответа

Это возможно в реализациях 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 она недоступна.

15
ответ дан 3 December 2019 в 08:28
поделиться

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

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

var mytextarea = document.getElementById("mytext");
var text = mytextarea.value;
-1
ответ дан 3 December 2019 в 08:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: