如何使用可选的new关键字实现jQuery.Deferred?

时间:2014-03-11 17:32:19

标签: javascript jquery

documentation中,可以使用jQuery.Deferred$.Deferred()创建new $.Deferred()构造函数的实例。 new关键字是可选的。

如何在构造函数中实现类似的东西?

1 个答案:

答案 0 :(得分:2)

如果您的函数未被调用为构造函数,this将不再是它的实例。因此,您可以使用此功能来检测new - 更少的电话:

function MyObject(arg1, arg2, arg3) {
  if(!(this instanceof MyObject)) {
    return new MyObject(arg1, arg2, arg3);
  }

  /* Normal constructor code... */
}