2016-07-01 2 views
-1

Интересно, если мы можем определить объект, как это объект расположение ... Пример:JavaScript определение объекта возвращает строку вместо всего объекта

var a = {a:'asd', b:someFunction}; 
console.log(a); 
//Desired: 'asd' 
//Actual: Object {a,b}... 

console.log(a.a); 
//> 'asd' 
console.log(a.b); 
//> function() ... 

Такое поведение работает с location

На данный момент единственный способ, которым я могу эмулировать это scaping через toStrin

a.toString =()-> return a.a 
console.log(''+a) 
//> 'asd' 

Таким образом, существует чистый способ для достижения этой цели в нашем коде или такое поведение просто работать с системой переменные?

+1

'console.log (a); // Return> 'asd''? Ты уверен ? – Rayon

+0

это не делает много смысла. –

+0

Неверный ваш вопрос. Он регистрирует этот 'Object {a:" asd "}' –

ответ

0

Решение, которое я нашел в том, чтобы использовать объект типа String:

var a = new String('asd'); 
a.b = someUsefullFunction 

Но есть @ Ясон-fetterly говорит выход в большой степени зависит от браузера вы тест поэтому в стабильности касается этого не является жизнеспособным в javaScript.

Кроме того, если вы хотите это есть я говорю в начале и другие точки используют ToString overide

a.toString = function(){return a.a}; 
console.log(''+a) 

Теоретическая часть этого вопроса поздно я узнаю это (Object/Function) перегрузки, factible в Java.

0

Вы можете переопределить toString() так, чтобы всякий раз, когда вы используете объект в контексте строки, вы получаете значение a.a. Однако это не приводит к изменению console.log (a). Если это не поможет, возможно, вы должны отредактировать свой квест и предоставить более подробную информацию о вашем прецеденте.

var a = { 
    a: 'asd', 
    b: function someFunction() {} 
}; 
a.toString = function() { 
    return this.a; 
}; 

alert(a); 
// Dialog with 'asd' 

console.log('Value of a: '+a); 
// Console prints 'Value of a: asd' 

console.log(a); 
// Exact print depends on browser, but full object details will likely be shown 
Смежные вопросы