JavaScript类的默认函数/值

时间:2011-08-03 12:11:26

标签: javascript

是否可以为JavaScript类设置默认/回退功能?

var a = new function() {

  this.b = function() {
    return "B";
  }

  return "A";
}

在此示例中,我希望在执行B时看到alert(a.b()),而仅为A执行alert(a)

2 个答案:

答案 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";
}