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

OSCHINA-MIRROR/ambit-object-defineproperty-ie

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

Object.defineProperty Sham для IE

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

Внимание:

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

Установка:

  • Использование NPM: npm install -S object-defineproperty-ie.
  • Прямая загрузка:

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

<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>

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

  • Онлайн доступ: GitHub Page.
  • Локальный доступ: docs/index.html.
  • Протестировано в IE6, IE7, IE8.

Контакты:

  • WeChat: ambit_tsai.
  • QQ группа: 663286147.
  • Электронная почта: ambit_tsai@qq.com.

Ссылки:

Опубликовать ( 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