2015-01-18 2 views
0

Я устал от написания длинного объекта/выражения метода метода как пример ниже. Добавление каждой собственности по одному казалось такой талией нажатий клавиш.Окончательный лучший способ добавления свойств/методов

var foo = function(object){ 
     object.foo = "foo"; 
     object.function = function(){}; 
     return object; 

} 

Я так расстроен, что думал, что должен быть лучший способ. После некоторого раздумья лучшая вещь, которую я мог придумать, - это функция петли addProperties, например.

var addProperties = function(properties, subject){ 
    subject = subject ? subject : {}; 

    for(propertie in properties){ 
     if(properties.hasOwnProperty(propertie) && !subject[propertie]){ 
      subject[propertie] = properties[propertie] 
     } 
    } 
    return subject; 
} 

Это делает код немного более кратким:

var foo = function(object){ 
    return addProperties({foo : "foo", function : function(){}}, object); 
} 

НО Я НЕ ДОВОЛЬНЫ !!

Итак, я обращаюсь к вам, к великим людям переполнения стека: Каков наилучший способ добавления свойств/методов? (В ваших личных мнений)

ответ

1

Как это помечается JQuery

var foo = function(obj){ 
    return $.extend(obj, { 
     foo  : "foo", 
     function : function(){} 
    }); 
} 
1

Возможно ...

var foo = { 
    bar: 'bar', 
    thatNamedFunction: function(){ 
     console.log('That named function of foo'); 
    }, 
    thatFunctionThatReturnsBar: function() { 
     console.log('Returning bar'); 
     return this.bar; 
    }, 
    thatFunctionThatManipulatesBar: function(newValue) { 
     console.log('Bar will now be the newValue') 
     this.bar = newValue; 
    } 
}