javascript – 传递Arguments的jQuery-Intellisense

我怎样才能实现以下代码示例中的jQuery-Intellisense?

function doSomething($jQueryObject) {
    $jQueryObject.   // I want to have Intellisense here
};

var $parameter = jQuery('body');
doSomething($parameter);

问题是Intellisense不知道函数的参数是jQuery-Object.我怎么能告诉函数参数类型?

我知道我可以在函数中写一些类似的东西

$obj = $j($jQueryObject);

创建一个新的jQuery-Objekt,但我想知道是否有另一种解决方法.

最佳答案
Javascript是一种松散类型的语言,这意味着类型不是明确声明的,而是在运行时内部决定的.

Interllisense无法确定变量的类型(无论编辑器如何),因为它根本没有定义.您可以将任何想要的内容传递给doSomething()方法.这是一种强大而灵活的编程方式.不好的一面是它可能需要实施一些检查以避免错误/异常

如果要为其他开发人员构建某种框架或API,则应考虑测试参数的类型.

要测试jQuery类型变量,请执行以下操作:

var $obj = $jQueryObject instanceof jQuery
              ? $jQueryObject
              : $($jQueryObject);

注意:使用$前缀变量名称是使用该函数的开发人员的预期变量的jQuery性质的一个很好的指标.

编辑:通过instanceof jQuery替换typeof ===“jQuery”

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...