如何在以下代码示例中实现jQuery-Intellisense?
function doSomething($jQueryObject) {
$jQueryObject. // I want to have Intellisense here
};
var $parameter = jQuery('body');
doSomething($parameter);
问题在于Intellisense不知道该函数的参数是jQuery对象。我怎样才能告诉函数参数类型?
我知道我可以在函数中编写类似
$obj = $j($jQueryObject);
创建一个新的jQuery-Objekt,但是我想知道是否还有另一种方法可以解决这个问题。
最佳答案
Javascript是一种松散类型的语言,这意味着该类型不是显式声明的,而是在运行时在内部确定的。
Interllisense 不能确定变量的类型(无论是什么编辑器),因为根本没有定义变量。您可以将所需的任何内容传递给doSomething()
方法。这是一种强大而灵活的编程方式。不利的一面是,它可能需要执行一些检查以避免错误/异常
如果要构建某种框架或API供其他开发人员使用,则应考虑测试参数的类型。
要测试jQuery类型变量,请执行以下操作:
var $obj = $jQueryObject instanceof jQuery
? $jQueryObject
: $($jQueryObject);
注意:在变量名前加上
$
可以很好地表明使用该函数的开发人员期望变量的jQuery性质。编辑:用
typeof === "jQuery"
替换instanceof jQuery