静态方法对应的是对象方法,对象方法用实例对象调用,而静态方法用类名调用
<script> // 定义一个类 function AClass() {} // 给函数A添加静态方法 // 直接添加给类的就是静态方法 AClass.staticMethod = function () { alert("静态方法"); }; // 静态方法的调用 AClass.class(); // 给这个类添加一个实例方法 AClass.prototype.instanceMethod = function () { alert("实例方法"); }; // 实例方法通过类的实例调用 // 创建一个实例(创建一个对象) var a = new AClass(); // 通过实例调用实例方法 a.instanceMethod(); </script>
暂停或者恢复jQuery.ready()事件
传入true或false
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>04-jQuery静态方法</title> <script src="代码/js/jquery-1.12.4.js"></script> <script> // 使用$直接调用,是静态方法 $.holdReady(true); $(function () { $("#first").click(function () { alert("我是你想要的弹窗"); }); }); </script> </head> <body> <button id="first">点击测试弹出</button> <button id="second">解除延迟</button> <script> $("#second").click(function(){ $.holdReady(false); }); </script> </body> </html>
遍历对象或数组
优点统一遍历对象和数组的方式
回调参数的顺序更符合我们的思维模式
<script> $(function () { // 3.1遍历数组 var arr = [1, 3, 5, 7, 9]; // 3.1.1通过原生方法遍历数组 // 第一个回调函数参数是遍历到的元素 // 第二个回调函数参数是当前遍历的索引 // 返回值: 没有返回值 var res = arr.forEach(function (ele, idx) { console.log(idx, ele); }); console.log(res); // 3.1.2通过jQuery静态方法遍历数组 // 第一个回调函数参数是当前遍历的索引 // 第二个回调函数参数是遍历到的元素 // 返回值: 被遍历的数组 var $res2 = $.each(arr, function (idx, ele) { console.log(idx, ele); }); console.log($res2); // 3.2遍历对象 var obj = {name: "lnj", age:"33", gender:"male"}; // 3.2.1js对象没有forEach方法,所以通过forin方法遍历对象 for(var key in obj){ console.log(key, obj[key]); } // 3.2.2通过jQuery静态方法遍历对象 $.each(obj,function (key, value) { console.log(key, value); }); }); </script>
$(function () { // 4.1遍历数组 var arr = [1, 3, 5, 7, 9]; // 4.1.1通过原生方法遍历数组 // 第一个回调函数参数是遍历到的元素 // 第二个回调函数参数是当前遍历的索引 // 第三个回调函数参数是当前被遍历的数组 // 返回值: 将回调函数返回值收集起来组成一个新的数组 var res = arr.map(function (ele, idx, arr) { console.log(idx, ele, arr); return ele + idx; }); console.log(res); // 4.1.2通过jQuery静态方法遍历数组 // 第一个回调函数参数是遍历到的元素 // 第二个回调函数参数是当前遍历的索引 // 返回值: 将回调函数返回值收集起来组成一个新的数组 var $res2 = $.map(arr, function (ele,idx) { console.log(idx, ele); return ele + idx; }); console.log($res2); // 4.2遍历对象 var obj = {name: "lnj", age:"33", gender:"male"}; /* obj.map(function (ele, idx, obj) { // 报错,原生JS没有map方法 console.log(idx, ele, obj); }); */ var $res = $.map(obj, function (value, key) { console.log(key, value); return key + value; }); console.log($res); });
<script> $(function () { var str = " lnj "; console.log("---"+str+"---"); var $res = $.trim(str); console.log("---"+$res+"---"); }); </script>
<script> $(function () { // 对象 var obj = {name:"lnj",age: "33", gender:"male"}; // 真数组 var arr = [1, 3, 5, 7, 9]; var $res = $.isArray(obj); console.log($res);// false var $res2 = $.isArray(arr); console.log($res2);// true }); </script>
<script> $(function () { var obj = {name:"lnj",age: "33", gender:"male"}; var arr = [1, 3, 5, 7, 9]; var fn = function () {} var $res = $.isFunction(obj); console.log($res);// false $res = $.isFunction(arr); console.log($res); $res = $.isFunction(fn); console.log($res); // 通过该方法验证了我们前面所说的,jQuery框架本质是一个匿名函数 $res = $.isFunction($); console.log($res); }); </script>
<script> $(function () { var obj = window; var arr = [1, 3, 5, 7, 9]; var arrlike = {0:"zs", 1:"ls", length:2}; var $res = $.isWindow(obj); console.log($res); // true $res = $.isWindow(arr); console.log($res); // false $res = $.isWindow(arrlike); console.log($res); // false }); </script>