html如何构造选择器,01构造函数添加选择器的支持.html

Title
  • 111
  • 222
  • 3333

/*

* jQ整体是一个自调函数,

* 这个自调函数接收两个参数,第一个是全局对象,第二个是jQ的主体函数,

* 然后自调函数内间接调用了传入的主体函数,

* 主体函数对外暴露了两个全局变量$ 与 jQuery。

* */

// 1、整体自调

(function(global, factory){

factory( global );

})(window, function(window) {

// 缓存一些常用的方法,提高查找效率

var document = window.document;

var arr = [],

push = arr.push,

slice = arr.slice;

// 3、定义工厂函数

var jQuery = function(selector) {

return new jQuery.fn.init(selector);

}

// 4、给原型起一个简称,添加原型上添加一些核心成员

jQuery.fn = jQuery.prototype = {

construcotr: jQuery

}

// 5、定义构造函数,顺带把构造函数添加到工厂的原型中

var init = jQuery.fn.init = function(selector) {

[].push.apply(this, document.querySelectorAll(selector));

};

// 6、把构造函数的原型替换为工厂的原型,保持一致;

// 这样init实例就可以使用工厂原型的方法了

init.prototype = jQuery.fn;

// 7、添加一个组织整体结构的extend方法

jQuery.extend = jQuery.fn.extend = function() {

var arg = arguments, argLen = arg.length;

var i = 1, key;

var target = arg[0];

// 如果参数为1,copy给this

if(argLen === 1) {

target = this;

i = 0;

}

// 遍历每一个被copy的对象

for(; i < argLen; i++) {

// 遍历得到对象的属性,copy给target

for(key in arg[i]) {

if(arg[i].hasOwnProperty(key)) {

target[key] = arg[i][key];

}

}

}

return target;

};

// 2、主体函数暴露全局变量

window.jQuery = window.$ = jQuery;

});

console.log($('li'));

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值