使用jQuery时,我们通常会这样写:
// 声明一个jQuery实例
$('.target')
// 获取元素的css属性
$('.target').css('width')
//获取元素的微信信息
$('.target').offset();
是不是与普通函数的对象实例不太一样,new关键字去哪里了,$符号又是什么?带着这些疑问,一起来实现一个简化版的jQuery库吧。
一个库就是一个单独的模块,因此应该使用自执行函数的方式模拟一个模块。
(function(){
})();
既然能够在全局直接调用jQuery,则说明jQuery被挂载在了全局对象上面,因此当我们在模块中对外提供接口时,可以采取window.jQuery的方式。
var jQuery = {};
// ..
window.jQuery = jQuery;
我们在使用过程中,并没有使用jQuery,而是使用了$,其实只是多加了一个赋值的操作。
window.$ = window.jQuery = jQuery;
在使用过程中直接使用$,其实相当于直接调用构造函数jQuery创建了一个实例,而没有使用new。但是