jQuery工具方法

1.$.type();查看变量得类型

var a = '123';
alert( $.type(a) );

2.$.isFunction();判断是不是函数

// 真返回ture,假返回false
    <ul>
var a = function(){};
alert( $.isFunction(a) );

3.$.isNumeric();判断是不是数字

// 真返回ture,假返回false

var a = ‘123’;
alert( $.isNumeric(a) );
// 字符串的123也会返回true

4.$.isArray();判断是不是数组

// 真返回ture,假返回false

var a = [];
alert( $.isArray(a) );

5.$.isWindow();判断是不是window

// 真返回ture,假返回false

var a = window;
alert( $.isWindow(a) );

6.$.isEmptyObject();判断是不是为空

// 真返回ture,假返回false

var a = {};一般针对 json或者数组
alert( $.isEmptyObject(a) );

7.$.isPlainObject();判断是不是数组类型(对象自变量 {}或者new Object)

// 真返回ture,假返回false

var a = {name:"hellow"};
alert( $.isPlainObject(a) );

8.对象拷贝工作$.extend();

var a = {name:"hello"};
var b = {};
$.extend( b,a );
// 支持多对象覆盖,实现原理从第二个开始往第一个赋值
// $.extend( b,a,{age:12} );
b.name = 'hi';
alert( a.name );// 弹出的是hello

/* 深拷贝 */
var a = {name:{age:20}};
var b = {};
$.extend(true, b,a );// 默认拷贝一层,如果不加true,下面会更改a的age值,加上true,就是深拷贝
b.name.age = 30;
alert( a.name.age );// 弹出的是hello

9.改变this指向$.proxy();

function show(){
    alert(n1);
    alert(n2);
    alert(this);
}
$(document).on('click',$.proxy(show,window,2,3) );// 点击执行
$(document).on('click',$.proxy(show,window)(2,3) );// 直接执行,传参后面再加一个括号是直接执行的意思

/* 上面太过麻烦 */
点击div让div1秒变红色
$('#div1').click(function(){
    var This = this;// 更改一下this指向
    setTimeout(functioin(){
        $(This).css('background','red');// 现在的this指向是window
    },1000);
});
JSRUN notes