jquery function_关于jQuery

jQuery是目前使用最广泛的javascript函数库。

关于它的设计思想/设计模式

设计模式是啥?

老子这个代码写得太漂亮了,别人肯定也用得到,那就给这种写法取个名字吧,比如适配器模式,所以设计模式就是对通用代码取个名字而已~

jQuery 用到了哪些设计模式?

1. 不用 new 的构造函数,这个模式没有专门的名字

2. $(支持多种参数),这个模式叫做重载

3. 用闭包隐藏细节,这个模式没有专门的名字

4. $div.text()即可读也可写,getter/setter

5. $.fn是$.prototype 的别名,这叫别名

6.
 jQuery 针对不同浏览器使用不同代码,这叫适配器

推荐阅读:

1.jQuery 都过时了,那我还学它干嘛?

jQuery 都过时了,那我还学它干嘛?​fangyinghang.com

2.jQuery设计思想

jQuery设计思想 - 阮一峰的网络日志​www.ruanyifeng.com
33a162459195f8c31fde3a37536a43a1.png

这篇文章来自阮一峰,他对jQuery的100多页的入门教材《jQuery Fundamentals》做了一个简短的粗略翻译整理,主要包括:

一、选择网页元素

二、改变结果集

三、链式操作

四、元素的操作:取值和赋值

五、元素的操作:移动

六、元素的操作:复制、删除和创建

七、工具方法

八、事件操作

九、特殊效果

jQuery的特点:闭包+链式操作

API

window.jQuery = function (selector) {

const elements = document.querySelectorAll(selector)

API = 对象(对象是{ key:value })

API = { "addClass":function( ) { console.log ( elements ) }

//访问了外部的elements,这就是闭包

//闭包:函数访问外部的变量

API = { addClass( ) { console.log ( elements ) }

链式操作

return api

api.addClass('red').addClass('blue')

api.addClass('red').addClass('blue').addClass('blue')

api.addClass('red') //class=“test red”

.addClass('blue') //class=“test red blue”

.addClass('blue') //class=“test red blue green”

函数里的this

obj.fn (p1) // 函数里的this 就是 obj

obj.fn.call(obj,p1)

return api = return this

注意看下面两段代码

const api 然后 return api,可以直接改为 return

window.jQuery = function (selector) {
    const elements = document.querySelectorAll(selector)
    //api 可以操作elements
    const api = {
        //闭包:函数访问外部的变量
        addClass(className) {
            for (let i = 0; i < elements.length; i++) {
                elements[i].classList.add(className)
            }
            return this // this 等价于 api(函数)
        }
    }
    return api
}
window.jQuery = function (selector) {
    const elements = document.querySelectorAll(selector)
    //api 可以操作elements
    return {
        //闭包:函数访问外部的变量
        addClass(className) {
            for (let i = 0; i < elements.length; i++) {
                elements[i].classList.add(className)
            }
            return this // this 等价于 api(函数)
        }
    }
}

注意下面代码等价(代码的演变过程)

const api = jQuery('.test') //不返回元素们,返回的是API对象
api.addClass('red').addClass('blue').addClass('green')

---->

const x = jQuery('.test') //不返回元素们,返回的是API对象
x.addClass('red').addClass('blue').addClass('green')

---->

const x = jQuery('.test') //不返回元素们,返回的是API对象
x.addClass('red')
 .addClass('blue')
 .addClass('green')

---->

jQuery('.test') //不返回元素们,返回的是API对象
    .addClass('red')
    .addClass('blue')
    .addClass('green')

---->

jQuery('.test') //不返回元素们,返回的是API对象
.addClass('red')
.addClass('blue')
.addClass('green')

链式风格,也叫jQuery风格,特殊函数jQuery,jQuery(选择器)函数用于获取对应的元素

但是它不返回元素,他返回一个对象,可以操作对应的元素,这个对象称之为 jQuery的构造

函数。

对于jQuery的学习路线

关于 jQuery,我们只需要理解 jQuery 原理,然后使用 jQuery 做一两个项目,总结最后写一篇博客就好了,以后再也不碰 jQuery了! 滚去学Vue/React就OK! 并不需要在上面花太多时间~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值