Javascript 如何在脚本插件中使用默认值
使用具有一些默认值/设置的小型vanilla js插件。因为默认值不在1层中(或者你怎么称呼它),我很难让它工作。我在网上找到了一个解决方案来解决这个问题,但是我现在使用的结构无法解决这个问题Javascript 如何在脚本插件中使用默认值,javascript,Javascript,使用具有一些默认值/设置的小型vanilla js插件。因为默认值不在1层中(或者你怎么称呼它),我很难让它工作。我在网上找到了一个解决方案来解决这个问题,但是我现在使用的结构无法解决这个问题 var extend = function () { var merged = {}; Array.prototype.forEach.call(arguments, function (obj) { for (var key in obj) { if (!obj.hasOwnPr
var extend = function () {
var merged = {};
Array.prototype.forEach.call(arguments, function (obj) {
for (var key in obj) {
if (!obj.hasOwnProperty(key)) return;
merged[key] = obj[key];
}
});
return merged;
};
上述解决方案仅适用于
var settings = {
name:'john',
age:'33'
...
}
这就是我现在使用的结构
var settings = {
person:[
{
name:'john',
active: 'yes'
skills:[
{
sports: 'no',
drinkbeer: 'yes'
}
]
},
{
name:'mary',
active: 'no'
skills:[
{
sports: 'yes',
drinkbeer: 'maybe'
},
{
sports: 'yes',
drinkbeer: 'maybe'
}
]
},
],
someValue: 'hello'
}
//正在运行的插件缺少一些值,应使用上述设置替换这些值
var person = new person({
person:[
{
name:'john',
active: 'yes'
},
{
skills:[
{
sports: 'yes',
drinkbeer: 'maybe'
},
{
sports: 'yes',
drinkbeer: 'maybe'
}
]
},
],
someValue: 'hello'
}
});
你的问题不清楚 如果您想完整地获取个人数据,为什么不使用
let merged = settings.peron.find(x => x.name == name);
// name is the variable you should pass as function argument.
// I used name but of course you should use something unique.
如果您想获取这些值并将它们与另一个对象合并,那么
let otherObject = { team: "teamName", color: "green" }
如果没有Commo键,则可以执行此操作:
let mergedObject = {...merged, ...otherObject};
如果你想做其他事情,你需要在你的问题中添加所有这些细节。你想实现什么?不,这个想法就像jQuery插件一样,你可以在初始化插件时使用defauls/settings值。但是当在init调用中不使用值时,应该使用插件本身提供的默认值。抱歉,很难为我解释,因为我不知道这些东西是如何被调用的,这就是我得到扩展函数的地方