Параметр функции Javascript для строки - PullRequest
3 голосов
/ 27 июля 2011

У меня есть функция javascript, которая принимает параметр, например:

function getSomething(cat,handler) {

      varURI = 'text'+cat;
      document.write('<p>'+varURI+'</p>');

    }

Что я вижу в выводе:

text[object Object]

Как мне получить реальное текстовое значение Объекта?

Ответы [ 3 ]

7 голосов
/ 27 июля 2011

Вам необходимо переопределить метод toString объекта - и дать вашему объекту «текстовое значение» -.

Вы получаете "[object Object]", потому что выполняется унаследованный метод Object.prototype.toString,например:

var cat = {
  name: 'Kitten',
  toString: function () {
    return this.name + ' meow';
  }
};

Этот собственный метод toString будет выполняться при выполнении любого неявного преобразования строки (например, при конкатенации строки к нему), например:

console.log(cat+' text'); // "Kitten meow text"

Примечание. Если вы подразумеваете под «текстовым значением» «строковое представление» объекта (например, перечисление пар свойство / значение), вашей функции потребуется перечислить все свойства (используя оператор for-in), но обычно большинствов тех случаях, когда это делается для целей отладки, в таком случае я бы порекомендовал вам получить отладчик (например, Firebug) и использовать метод console.dir.

2 голосов
/ 27 июля 2011

Я не знаю, что такое cat, но обычно вы используете метод toString().

function getSomething(cat,handler) {

  varURI = 'text'+cat.toString();
  document.write('<p>'+varURI+'</p>');

}
0 голосов
/ 27 июля 2011

Вы можете сделать это:

function ObjectToString(input,KeysOnly) {
    var ret = [];
    if(KeysOnly) 
       for(var k in input) 
        ret[k] = input[k]; 
    else 
        for(var k in input) 
        ret.push(k);
    return ret.toString();
}

function getSomething(cat,handler) {

  varURI = 'text'+ObjectToString(cat);
  document.write('<p>'+varURI+'</p>');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...