我是CoffeeScript的新手,我喜欢CoffeeScript类,但是无法弄清楚如何使用jQuery.prototype在jQuery中扩展它们。

这是我的应用程序的一部分,其中包含一些全局状态变量,因此我想通过$ .myThing.myFunction()调用它,而不是通常的$ .fn.extend / $()。myThing()扩展方式。

我可以使它像这样工作:

$ = jQuery
$.myThing = $.myThing || {}

$.extend $.myThing, {
  myProperty: 0
  myFunction: ->
}


没关系,但是我不能将其用作类,并且该结构看起来也不像我的pycharm。 (这就是说实话,可能比整个课堂都要麻烦……)

我想要做的是这样的事情:

$ = jQuery
$.myThing = $.myThing || {}

class myThing
  myProperty: 0
  myFunction: ->

$.extend $.myThing, myThing()


但这不起作用(除了在pycharm中看起来很漂亮)。有一个更好的方法吗?

最佳答案

这对您有用吗?

class jQuery.myThing
  myProperty: 0
  myFunction: ->


编译为:

jQuery.myThing = (function() {

  function myThing() {}

  myThing.prototype.myProperty = 0;

  myThing.prototype.myFunction = function() {};

  return myThing;

})();


编辑:$.myThing作为类的实例:

class myThing
  myProperty: 0
  myFunction: ->

jQuery.myThing = new myThing

10-04 19:20