使用此代码我有这个问题:
$.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行。
答案 0 :(得分: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
}
};
但可能你想使用更像_.extend
的东西。