2011-01-05 23 views

Respuesta

5

Pruebe siguiente

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

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

Espero que esto ayude.

Gracias!

Hussain.

-2

puede utilizar prototipo para que ...

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

o simplemente

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

no puede utilizar 'prototype' para esto. El prototipo solo se usa para los objetos creados con la palabra clave 'new', y solo las funciones (no los literales de los objetos) se pueden usar con la palabra clave' new'. –

+0

Vaya, tienes razón. prototipo no funcionará con el objeto literal. –

5

Es bastante simple en realidad:

obj.fn2 = function() { } 
38

Como otros han señalado:

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

Tenga en cuenta que si "na2" no es un identificador válido, debe utilizar en su lugar la notación 'array' para el objeto:

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

Ésta es también la forma en que lo haría si tuviera el nombre de la bienes almacenados en una variable:

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

Si desea probar si existe una propiedad de un objeto, se puede utilizar el operador de in:

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

Si desea eliminar una propiedad de un objeto, utilice la palabra clave delete:

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

para iterar sobre todas las propiedades de un objeto, utilice el operador in en un bucle. Asegúrese de var la variable de modo que no es global:

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 ] 
+0

+1 minuciosidad – Ben

+0

+1 por minuciosidad también. Otra cosa digna de mención es que si usted, como yo, desea usar el almacenamiento objeto-objeto, de la misma manera, primero debe verificar la existencia de la propiedad y, de no ser así, configurarlo con "obj [propName] = { } ", y luego puede repetir el proceso para" obj [propName] [subPropName] " – David

0
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 
Cuestiones relacionadas