前端笔记.三

这篇主要浅谈call和apply的一个小用法

function changeColor(color){ //一个更改对象样式color的工具函数
 this.style.color = color;
}
changeColor("red");

在没有任何域的环境下,this将指向window而window不会有style属性,所以将不会执行函数内的改变。我们没有给函数添加“obj”这么一个参数,要怎么作用于准确的对象上呢?

var main = document.getElementById("main")  //先获取一个id为main作为要操作的Dom
changeColor.call(main,"red");

那么apply呢?它本质与call有很大不同,但是用法基本一致,

function changebodyColor(color){
 changeColor.apply(document.body,arguments);
}
changebodyColor("red");


有高手遗言说call比apply效率高很多,所以我信古人。

本篇结束。希望能给你点启发。

posted @ 2012-11-15 16:48  Amas.lee  阅读(117)  评论(0编辑  收藏  举报