我怎样才能在下面的代码示例中获得 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
关于javascript - 用于传递参数的 jQuery-Intellisense,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8472977/