我一直在使用Iphone 6和6S,发现第一种方式只适用于6S,而第二种方式适用于两者。 (两者都使用IOS 9.2.1)有人可以解释之间的区别:
$(document).ready(function()
和
$(document).ready(function($)
答案 0 :(得分:1)
$(document).ready(function() {
console.assert(jQuery == arguments[0] , 'my first param is jquery object')
console.assert(this == document , 'my this is document')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
除了命名第一个参数之外没有区别,请尝试:
$(document).ready(function($) {
console.log(arguments)
和
$(document).ready(function() {
console.log(arguments)
})
Javascript没有基于参数的方法重载。
更新:无论你传递的匿名(或者为什么命名函数)定义,jquery都会将你的函数称为:
func.apply(document, jquery)
参见来源:https://github.com/jquery/jquery/blob/99e8ff1baa7ae341e94bb89c3e84570c7c3ad9ea/src/callbacks.js#L80
所以你的第一个论点是,你将它命名为$
或者不是jquery对象,而你的this
将是document