前端笔记.三
这篇主要浅谈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效率高很多,所以我信古人。
本篇结束。希望能给你点启发。
兴趣,是最好的老师。