OO Javascript问题

时间:2011-02-21 07:06:59

标签: javascript

鉴于以下内容:

var someObject = {};

someObject.prototype.a = function() {

};

someObject.prototype.b = function() {

//How can I call someObject.a in this function?

};

如何从someObject.b调用someObject.a?感谢。

2 个答案:

答案 0 :(得分:2)

这将有效:

someObject.prototype.b = function() {
  this.a();
};

但是,您对someObject的定义略有错误,应该是:

var someObject = function() {};

测试脚本:

var someObject = function() {};

someObject.prototype.a = function() {
    alert("Called a()");
};

someObject.prototype.b = function() {
    this.a();
};

var obj = new someObject();
obj.b();

答案 1 :(得分:0)

我想你可能打算这样做:

function Thingy() {
}

Thingy.prototype.a = function() {

};

Thingy.prototype.b = function() {
    this.a();
};

var someObject = new Thingy();

构造函数,而不是普通对象,具有特殊的prototype属性。构造函数的prototype通过new关键字作为其基础原型分配给使用该构造函数创建的所有对象,这为它们提供了默认属性(可以引用函数,如上所述)。 / p>