我想要一个代码高尔夫解决方案,其功能相当于以下功能:
myFunc = function( config ){
if ( typeof config !== 'object' ) { config = {}; }
config.property = config.property || 123;
};
基本上,是否有一种更短的方法来确保我始终传递一个对象,如果没有则创建它,并为其分配随机值?
最佳答案
我通常使用合并助手,通常是 jQuery.Extend()
(请参阅 documentation )。但如果您不想使用 jQuery,那么编写类似的帮助器就很简单了。但我通常会这样做:
myFunc = function( config ){
var defaults = { property: 123 };
config = $.extend({}, defaults, config);
};
基本上,您使用默认值扩展一个空对象,然后使用您传入的配置。您将始终获得一个至少具有您的 defaults
属性的新对象。我绝对建议将对象合并代码抽象到它自己的帮助器中,这样您就不会在每个构造函数中重复相同的逻辑。
关于JavaScript 对象默认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7324136/