"属性描述必须是对象“”;错误

"Property description must be an object" error

本文关键字:对象 错误 quot 属性 描述      更新时间:2023-09-26

使用此代码,我遇到了以下问题:

$.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);
});

我想更新dxwShowOptions,所以我使用Object.create首先传递我想复制的对象,然后传递包含新参数的对象。错误在哪里?

PS:Chrome表示该对象位于Object.create行。

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

但您可能想要使用更像_.extend的东西。