【JS教程】JS语法技巧经验篇(二)

JS语法技巧经验篇(一)

JS语法技巧经验篇(二)

经验技巧篇:

16、replace() 可以接受回调函数
alert('10 13 21 48 52'.replace(/\d+/g,function(match) { 
    returnparseInt(match)<30?'*': match; 
}));

17、利用 apply 和 call 改变当前作用域 

  srcObj.apply(obj[,[array...]]);

  srcObj.call(obj[,arts1[,arts2]]);

  2个函数的作用其实从本质上来说是一致的。意思是执行srcObj时,使用obj替换执行srcObj时的作用域this。同时通过后面的参数传递给srcObj的参数(即方法签名)

  区别在于参数,apply第二个参数是一个参数数组,而call的是参数值。

var animal='dog'; 
function getAnimal(adjective) { 
    alert(adjective+''+this.animal); 
}; 
var myObj={animal:'camel'}; 
getAnimal.call(myObj,'lovely'); //弹出 'lovely camel'
getAnimal.apply(myObj, ['lovely']); //函数参数以数组形式发送

18、getComputedStyley颜色返回值不同类型

  getComputedStyle($("body")[0],null).color); 

  IE的返回值是16进制,Safari、Chrome、Firefox都是 RGB 格式。

19、直接构造对象和利用原型构造对象的区别

  直接构造对象,每次实例化,JS都会为这个示例分配包含直接对象中所有属性的空间。原型构造法则不会。


你可能感兴趣的:(【JS教程】JS语法技巧经验篇(二))