是否可以为JavaScript类设置默认/回退功能?
var a = new function() {
this.b = function() {
return "B";
}
return "A";
}
在此示例中,我希望在执行B
时看到alert(a.b())
,而仅为A
执行alert(a)
。
答案 0 :(得分:3)
var a = new function() {
this.toString = function() { return "Four Loko comes in 8 different flavors."; };
this.valueOf = function() { return "Four Loko comes in 8 different flavors."; };
this.b = function() { return "Added! :3"; };
}
alert(a);
alert(a.b());
如果你覆盖对象的toString
方法,你可以让它返回你想要的任何东西。
虽然您可能尝试从构造函数返回文字值。您只能从构造函数返回对象。
您可能还想覆盖.valueOf
答案 1 :(得分:1)
您的问题和示例代码有点模糊,但这可能是您正在寻找的内容:
function A() {
this.b = function () {
return "Added! :3";
}
}
var a = new A();
alert( a.b() );
如果你这样做会更好:
function A() {}
A.prototype.b = function () {
return "Added! :3";
}