首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >$(文档)函数(.ready()与$(文档).ready(函数($))

$(文档)函数(.ready()与$(文档).ready(函数($))
EN

Stack Overflow用户
提问于 2016-02-23 10:34:01
回答 1查看 37关注 0票数 0

我一直在使用iPhone6和6S,我发现第一种方法只在6S上有效,而第二种方法在两种情况下都有效。(两者都使用IOS 9.2.1)谁能解释一下它们之间的区别:

代码语言:javascript
运行
复制
$(document).ready(function()

代码语言:javascript
运行
复制
$(document).ready(function($)
EN

回答 1

Stack Overflow用户

发布于 2016-02-23 10:39:52

代码语言:javascript
运行
复制
$(document).ready(function() {
   console.assert(jQuery == arguments[0] , 'my first param is jquery object')
     console.assert(this == document , 'my this is document')
       
})
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

除了命名第一个参数没有什么不同,试一下:

代码语言:javascript
运行
复制
 $(document).ready(function($) {
     console.log(arguments)

代码语言:javascript
运行
复制
 $(document).ready(function() {
   console.log(arguments)
 })

Javascript没有基于参数的方法重载。

更新:不管您传递的是什么匿名(或命名函数)定义,jquery都会这样调用您的函数:

代码语言:javascript
运行
复制
  func.apply(document, jquery)

请参阅来源:https://github.com/jquery/jquery/blob/99e8ff1baa7ae341e94bb89c3e84570c7c3ad9ea/src/callbacks.js#L80

因此,您的第一个参数是将其命名为$还是不将其命名为jquery对象,并且您的this将为document

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35567737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档