javascript中的"属性描述必须是对象"错误.无法理解为什么:(

DxW*_*DxW 4 oop jquery

使用此代码我有这个问题:

    $.fn.dxwShow = function (options) {

    console.log(typeof(options));
    dxwShowSetOptions(options);

    setInterval(function(){
        dxwShowChange();
    }, dxwShowOptions.time);
};

var dxwShowOptions = {
    "transition" : "SlideToggle",
    "time": 1000
};

var dxwShowStatus = {
    current : 0
};

function dxwShowSetOptions(options){
    console.dir(typeof(options));

    dxwShowOptions = Object.create(dxwShowOptions, options);
}

function dxwShowChange(){
    console.log(dxwShowOptions);
};

$(function(){

    options = {
        "time": 700,
        "debug" : true
    };

    $("#dxwShow").dxwShow(options);

});
Run Code Online (Sandbox Code Playgroud)

我想更新dxwShowOptions,所以我使用Object.create首先传递我想要复制的对象,因此包含新参数的对象.哪里出错了?

PS:Chrome说该对象位于Object.create行.

Dom*_*nic 12

Object.create获取属性描述符的映射.options不是这样的清单.

请参阅https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create

如果您仍想使用Object.create,则需要修改选项以使其更像

var options = {
    time: {
        enumerable: true,
        configurable: true,
        writable: true,
        value: 700
    },
    debug: {
        enumerable: true,
        configurable: true,
        writable: true,
        value: true
    }
};
Run Code Online (Sandbox Code Playgroud)

但是你可能想要使用更像的东西_.extend.