1.匿名函数自执行
(function(){
})();
2.匿名函数自执行好处
匿名函数自执行里面的所有东西都是一个局部的。防止和其他代码冲突
(function () {
var a=10;
})();
alert(a);//打印出来是a is not defined
3.如何访问到匿名函数自执行中的方法
可以把你要对外提供的接口作为window的属性或者是方法
(function() {
var a=10;
function abc(){
alert(a);
}
//将abc方法作为window的方法,就可以在匿名函数自执行外边进行访问了
window.abc=abc;
})();
abc();
4.在jQuery中,$()是jQuery()的简写方式。
5.在jQuery中第21行到第94行定义了一些变量和函数.其中60到64行是一个特别重要的函数,就是平时用的$() jQuery()对外的接口
// Define a local copy of jQuery
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
// Need init if jQuery is called (just allow error to be thrown if not included)
return new jQuery.fn.init( selector, context );
},
但现在这个jQuery还是以局部变量的形式存在,需要提供对外接口
if ( !noGlobal ) {
window.jQuery = window.$ = jQuery;
}
6.在第96到283行,都是给jQuery对象添加一些方法和属性。
prototype(原型)是面向对象的东西,所以,jQuery是一个面向对象的程序,jQuery里写的都是跟面向对象有关的
jQuery.fn = jQuery.prototype
7.为什么jQuery是基于面向对象的程序
//jQuery是这样调用方法的。是不是和下面数组的使用方法非常像
//但实际上$("div")它本身是一个函数调用,但是函数调用的执行结果是一个对象,所以说jQuery是基于面向对象的程序
$("div").css();
$("div").text();
//这是Array对象方法的使用方式,先实例化一个对象,然后使用对象调用方法
var arr = new Array(3);
arr.sort();
arr.splice();
//61--64
jQuery = function( selector, context ) {
//在这个函数执行完了就是一个new构造函数的过程,返回的就是一个jQuery对象,既然返回的是对象,就可以调用方法
return new jQuery.fn.init( selector, context, rootjQuery );
}
8.285到347行 extend:是jQuery当中的一个继承方法,希望后续添加的方法都能挂在jQuery对象上,很方便扩展
9.
//通过实例调用的方法,是实例方法
$().text();
$().html();
//$是一个函数,在函数下面来扩展方法的话,就是扩展一些静态方法
//在jQuery当中,给面向对象扩展静态属性和静态方法叫做扩展工具方法
//工具方法和实例方法区别就在于,它既能给jQuery对象来用,也可以给原生的JS来用,实例方法只能给jQuery对象来调用
$.trim();
$.proxy();
10.静态方法和实例方法在jQuery中的关系
可以把静态方法看做是在jQuery中的最底层,而实例方法是上一层或者是更高层的。
很多方法都是实例方法,里面调用的都是工具方法