Я ищу способ написать этот код более эффективным способом. В методе загрузки объекта он будет иметь столько строк, сколько записи в параметрах (не менее).Как эффективно копировать свойства с объекта на другой?
var myPlugin = {
// here are the 'plugin' default ptions
option1: 'deafult1'
, option2: 'deafult2'
, option3: false
, option4: true
, optionN: 'deafultN'
// here the plugin will receive an object ('options')
load: function(options){
if (options.option1) myPlugin.option1 = options.option1;
if (options.option2) myPlugin.option2 = options.option2;
//...
}
}
myPlugin.load({
option3: true
, option5: '123'
});
Это правильный способ загрузить параметры в JS/jquery-плагин? Есть ли способ использовать for()
/each()
для загрузки объекта объектов более эффективным/аккуратным способом?
Я думал, что-то вроде:
load: function(options){
$.each(options, function(index, opt){
// how to load options from here?
// something like:
// myPlugin. ->current opt property name = opt
});
}
ok. Но myPlugin не имеет объекта «opts». все варианты прямо к плагину: 'myPlugin.option1' не' myPlugin.opts.option1' – Azevedo
Хорошо. Ну, вы можете скопировать прямо на 'myPlugin.options' с' $ .extend (myPlugin.options, options) '- в зависимости от того, как вы используете' myPlugin', это может или не может вызвать проблемы из-за того, что вы были бы переопределяя значения по умолчанию каждый раз, когда вы расширяете() '. –
работал для меня, как этот '$ .extend (myPlugin, options);'. Но я рассматриваю возможность ввода всех параметров в объект, например 'myPlugin.options', будет ли это более безопасным/логичным? – Azevedo