javascript:使用多个对象进行原型设计

时间:2011-04-29 14:46:26

标签: javascript namespaces prototyping

很抱歉,如果这在某个地方得到了解答(可能是这样),但我不太确定如何正确地问它,所以我搜索失败了:(

基本上我想做这样的事情:

(a||b).prototype.c = function () {
  // do something
}

基本上a和b是对象。一个或另一个将存在,但不是两者都存在。但我不知道哪个会存在,但我需要为任何一个方法添加一个方法。

现在,我知道我可以这样做:

if (typeof(a) == 'object') {
  a.prototype.c = c;
} else if (typeof(b) == 'object') {
  b.prototype.c = c;
} 

function c () {
  // do something
}

但是这有c在全局级别拥有自己的命名空间的问题,我不希望这样。我不希望c在任何时间点在全局级别拥有它自己的命名空间。

Soo ......显然上面的第一段代码不起作用。我该怎么做?或者这样的事情根本不可能?如果之前已经回答过,请随时关闭并指出正确的方向......

1 个答案:

答案 0 :(得分:0)

我认为这样的事情可以解决你的问题:

(function() {
  var f = function() {
    //Prototype function
  };
  if(a)
    a.prototype.f = f;
  if(b)
    b.prototype.f = f;
})();