相关疑难解决方法(0)

Object.defineProperty polyfill

我目前正在编写一个基于ES5新功能的JavaScript API.它使用Object.defineProperty相当广泛.我把它包装成两个新的函数,叫做Object.createGetSetPropertyObject.createValueProperty

然而,我遇到了在旧浏览器中运行此问题的问题(例如可怕的IE8)

请考虑以下代码:

Object.createGetSetProperty = function (object, property, get, set, enumerable, configurable) {
    if (!Object.defineProperty) throw new Error("Object.defineProperty is not supported on this platform");
    Object.defineProperty(object, property, {
        get: get,
        set: set,
        enumerable: enumerable || true,
        configurable: configurable || false
    });
};

Object.createValueProperty = function (object, property, value, enumerable, configurable, writable) {
    if (!Object.defineProperty) {
        object[property] = value;
    } else {
        Object.defineProperty(object, property, {
            value: value,
            enumerable: enumerable || true,
            configurable: configurable || false,
            writable: …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-5 es5-shim

4
推荐指数
1
解决办法
9202
查看次数

标签 统计

ecmascript-5 ×1

es5-shim ×1

javascript ×1