到此为止接触的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中已经有的数据覆盖 没有的添加
红色线区域均为覆盖