Подтвердить что ты не робот

Добавление членов в существующий объект

Предположим, что мы имеем следующий объект:

var obj = {
    fn1: function() {
    }
}

как я могу динамически добавить к нему другой член, скажем

fn2: function() {}
4b9b3361

Ответ 1

Как отмечали другие:

obj.fn2 = function(){ ... };

Обратите внимание, что если "fn2" не является допустимым идентификатором, вы должны вместо этого использовать обозначение "array" для объекта:

obj["fn2"] = function(){ ... };
obj["!! crazy-names#allowed?!"] = function(){ ... };

Это также, как вы это сделали бы, если бы у вас было имя свойства, хранящегося в переменной:

var propName = "fn2";
obj[propName] = function(){ ... };

Если вы хотите проверить, существует ли свойство для объекта, вы можете использовать оператор in:

if ("fn2" in obj){ ... }

Если вы хотите удалить свойство из объекта, используйте ключевое слово delete:

var o = { a:42 };
console.log( "a" in o ); // true
delete o.a;              // Or delete o["a"]
console.log( "a" in o ); // false

Чтобы перебрать все свойства объекта, используйте оператор in в цикле for. Обязательно var переменную, чтобы она не была глобальной:

var o = { a:42, b:17 };
var allPropertyNames  = [];
var allPropertyValues = [];
for (var propName in o){
  // If you don't do this test, propName might be a property inherited
  // by this object, and not a property on the object itself.
  if (o.hasOwnProperty(propName)){
    allPropertyNames.push(propName);
    allPropertyValues.push(o[propName]);
  }
}
console.log( allPropertyNames );  // [ "a", "z" ]
console.log( allPropertyValues ); // [ 42, 17 ]

Ответ 2

Попробуйте следующее

var obj = {
   fn1: function() {
   } 
}

obj.fn2 = function() {} // this will add another member to existing object

Надеюсь, это поможет.

Спасибо!

Хуссейн.

Ответ 3

Это довольно просто:

obj.fn2 = function() { }

Ответ 4

var obj = { };

// Adding function by extending the object using dot notation

obj.subtract = function(num1,num2){
    return num1 - num2;
};

console.log(obj.subtract(8,5));//3

//Adding function by extending the object using bracket notation

obj['multiply them'] = function(num1,num2){

    return num1 * num2 ;

};

console.log(obj[' multiply them '](3,3)); // 9

Ответ 5

вы можете использовать прототип для этого...

obj.prototype.fn2 = function() {
 ....
}

или просто просто

obj.fn2 = function() {
 ....
}