2016-03-23 20 views
2

Neyi başarmak istediğim oldukça basit görünüyor, ancak mümkün olup olmadığından emin değilim.Javascript Varsayılan değer olan nesne

Özellik belirtilmediyse, belirli bir değeri döndüren bir nesneye sahip olmak isterim. Örneğin:

console.log(obj) // Returns "123" 
console.log(obj.x) // Returns "ABC" 
+1

Hayır, bu mümkün değil. Buna ne için ihtiyacınız var? – Bergi

+0

'console.log (obj)' için yapamazsınız, ancak '' konsol.log '' için yapabilirsin (obj + '') ' –

+1

Bir göz atın [burada] (http://stackoverflow.com/a/13606589/1048572) – Bergi

cevap

1
özel nesne için prototip toString() yöntemini geçersiz kılar

.

function MyObj() { 
} 
MyObj.prototype.toString = function() { 
    return '123'; 
}; 
var obj = new MyObj(); 
obj.x = 'ABC'; 
console.log(obj + ''); 
console.log(obj.x + ''); 
+0

@zb'nin belirttiği gibi, bu yalnızca, nesneyi günlük çağrısında '+ ''' ile bir dizgeye zorlayarak çalışır. –