1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ambit-object-defineproperty-ie

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 3.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 07:43 89d4aec

Object.defineProperty Sham для IE

Object.defineProperty — имитация на основе VBScript для IE. Также предоставляет Object.defineProperties, Object.getOwnPropertyDescriptor, Object.getOwnPropertyDescriptors.

Примечание:

  1. В IE8 программа будет использовать собственные методы defineProperty или getOwnPropertyDescriptor для объектов Element, doucment и window.
  2. В других случаях defineProperty вернёт новый объект VB.
  3. Для объекта VB при изменении существующего дескриптора новый объект создаваться не будет.
  4. Объект VB не может свободно добавлять или удалять свойства.
  5. У объекта VB нет [[Prototype]] или proto.
  6. Имя свойства объекта VB не может содержать специальный символ ].
  7. Свойства объекта VB перечисляются, на них не влияет дескриптор enumerable.

Установка:

  1. Используйте NPM: npm install -S object-defineproperty-ie.
  2. Скачайте напрямую: Development Version версия для разработки, Production Version рабочая версия.

Использование:

<script src="path/to/object-defineproperty-ie.js" type="text/javascript"></script>
<script type="text/javascript">
    var temp;
    var obj = Object.defineProperties({}, {
        prop1: {
            enumerable: true,
            get: function () {
                return temp;
            },
            set: function (value) {
                temp = value;
            }
        },
        prop2: {
            enumerable: true,
            configurable: true,
            value: 'Hello World'
        }
    });
    obj.prop = 123;
    // obj => {
    //     prop1: 123,
    //     prop2: 'Hello World'
    // }

    Object.defineProperty(obj, 'prop2', {
        value: 'Ambit-Tsai'
    });
    // obj => {
    //     prop1: 123,
    //     prop2: 'Ambit-Tsai'
    // }

    var desc = Object.getOwnPropertyDescriptor(obj, 'prop2');
    // desc => {
    //     enumerable: true,
    //     configurable: true,
    //     writable: false,
    //     value: "Ambit-Tsai"
    // }
</script>

Тестирование:

  1. Посетите онлайн-страницу на GitHub по ссылке GitHub Page.
  2. Откройте локально файл docs/index.html.
  3. Протестировано в IE6, IE7, IE8.

Контакты:

  1. WeChat: ambit_tsai.
  2. QQ Group: 663286147.
  3. E-mail: ambit_tsai@qq.com.

Ссылка:

  1. Усилия мини-фреймворка MVVM Avalon по обеспечению совместимости со старыми версиями IE.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/ambit-object-defineproperty-ie.git
git@api.gitlife.ru:oschina-mirror/ambit-object-defineproperty-ie.git
oschina-mirror
ambit-object-defineproperty-ie
ambit-object-defineproperty-ie
master