1

使用 PhpStorm:我的代码将实例化类作为参数传递给函数。我知道这className是对特定类的引用。但是有没有办法让我的代码知道是什么ClassName

   $(document).on('validSelection', function(event,className){
      alert( className.sayHello() );
   });

由于我计划使用很多,这确实会使这个特定功能的编码变得更加容易ClassName。在 php 中,您可以通过执行以下操作来强制识别:

/* @var $variable ClassName */
4

2 回答 2

1

我的代码将实例化类作为参数传递给函数

不,不是。您刚刚在函数列表中添加了另一个参数,但是当它被调用时(由 jQuery,当事件发生时),它没有被传递。如果您在绑定事件处理程序时有权访问className,则可以利用闭包:

var className = {
    sayHello : function() {
       return "hello";
    }
};
$(document).on('validSelection', function(event){
   alert(className.sayHello()); // works
});

另一方面:我看到您正在使用自定义事件。因此,如果您在代码中调用了.trigger其他任何地方,那么您可以将任何内容作为第二个参数传递,并将其传递给事件处理程序:

var className = {
    sayHello : function() {
       return "hello";
    }
};
$(document).trigger('validSelection', className);

// On a separate scope...

$(document).on('validSelection', function(event, className){
   alert(className.sayHello()); // works
});
于 2013-01-29T19:53:14.170 回答
0

在 JavaScript 中,我们没有类,而是使用“原型”来像我们一样行事。因此,要检查对象的“类别”,您需要使用其中一种原型方法。

如果您有一个易于引用的className对象实例化副本,您可以使用className.prototype.constructor并检查它是否isPrototypeOf是其他对象。

或者,您可以检查这className是否是instanceOf某个原型对象。

于 2013-01-29T19:59:03.863 回答