这个问题适用于Javascript中的对象。
我注意到我可以添加一个字符串和一个Error对象,并且Error对象文本连接没有任何问题。
try {
throw new Error('Sample Text');
} catch (error) {
document.writeln('There was an error. ' + error); // Go plus sign!
}
输出There was an error. Error: Sample Text
非常酷。 Error对象知道我想要连接的字符串。我自己的对象并不像这样表现得很好。
var myObject = (function () {
var text = 'Text I want to concat.',
get_text = function () { return text; },
that = {};
that.get_text = get_text;
return that;
}());
document.writeln('What does my object say: ' + myObject); // Uncool
我自己的对象输出What does my object say: [object Object]
并且不像Error对象那样表现得很好。
我不希望输出[object Object]
。如何在添加到字符串时更改myObject吐出的字符串?
答案 0 :(得分:3)
您应该为对象提供一个返回相应字符串的toString
方法。因此,您只需将get_text
重命名为toString
即可。你可以这样写:
var myObject = (function () {
var text = 'Text I want to concat.';
return {
toString : function () { return text }
};
}());
答案 1 :(得分:1)
您需要提供toString()方法,就像在Java编程语言中一样。
(人们总是在语言不同的情况下做出如此重要的事情,但实际上,他们有一些显着的相似之处,就像这样。)
例如,看看这段代码:
function Apple() {
this.toString = function() {
return "I'm an Apple!"
}
}
var apple = new Apple();
document.write(apple);
对于现有对象,您可以通过以下方式添加toString方法:
existingObject.prototype.toString = function() {
return "I am an existing objet.";
}