jq工具方法 单对象式编程(this)编程 extennd插件拓展

到此为止接触的jq方法为实例方法 

给予你所选取的dom进行一系列操作

工具方法 : 不用基于选取的dom进行操作 用域处理基础数据类型的方法

$.type() 判断数据类型 $.isArray()  $.isFunction()  $.isWindow…

区别于原生js中的typeof  

typeof返回数据是什么类型

$.type  返回数据是什么

$.trim() 消除空格

注意  原生js 中 字符串中拥有该方法消除字符串前后的空格

$.proxy() 改变this指向   类似于bind()

传两个参数  第一个参数是 要改变this指向的函数名   第二个参数填写this要改成谁

完成之后并没有改变原方法的this指向 而是新创立一个方法   新的方法他的this指向为改变之后的

改变指向后返回一个新的函数   变量接受 执行

单对象式编程如下

如上代码分析 对于绿色部分

号码一 :调用函数的是dom对象 而在对象中this指向list对象本身  这里会发生this指向的悄悄变化  会导致 3 位置报错 因为this此时已经有list变成了dom 而dom上并没有函数produs方法 所以报错

红色代码而言要重新纠正this指向于list对象 就需要在show方法中this改变之前进行需要在红色位置2处进行      改变后

$.proxy(this.show,this)   还是一个函数  是一个纠正了this指向函数

$.noConflict()防止 $变量命名冲突

$.each() 循环 map...

注意区别于实例方法each方法  哈哈哈

数组forEach前身    针对数组对象类数组而言

map方法不会改变原数组 会返回一个新的数组 如上所示 

$.parseJSON() 严格json字符串转换成对象 – 原生JSON.parse();

原生js严格json字符串转换成对象 – 原生JSON.parse(); 

$.makeArray() 类数组转换成数组

注意类数组slice空截也会变成数组  属于该方法的源码

该方法两个参数 会将第一参数添加入类数组中去 并将该类数组返回  如果obj是一个数组这相当于push进去元素

底层就是一个拼接方法 返回了类型为第二参数的类型

  

------------------------------------------------------------------------------------------------------------------------------

$.extend() 插件扩展(工具方法)继承拓展功能

拓展方法加到工具方法里面  $.defind....形式调用

$.fn.extend() 插件扩展(实例方法)

添加到实例方法里面

这两个作用:

拓展方法api没有解释   

  浅层克隆    使用模式如下

将后续的内容全部赋值给第一个参数    引用值只会传递地址 因而造成你改我也改的情况克隆过程严格遵守顺序 后者会覆盖前者

  深度克隆

添加第一个参数为true

深度克隆规则解析如下

假如obj1中没有引用值son 则新创立对象son 并将oj2中的son中的数据克隆过去

假如obj1中有引用值son 则将oj2中的son中的数据克隆过去 如果1中的son中已经有的数据覆盖   没有的添加

红色线区域均为覆盖

发布了56 篇原创文章 · 获赞 1 · 访问量 1201

猜你喜欢

转载自blog.csdn.net/qq_40819861/article/details/102573162