javascsript中的call和apply

一直对这两个方法用法存在疑惑,今天来理一理。

以前一直是搞不清谁调用谁,今天在红皮书上看到apply和call方法是函数默认的一个方法,即任何函数都会有的,想想就豁然开朗了。

下面是例子

function add(a,b){
 return a+b;
}
function calldemo(a,b){
 return add.call(this,a,b);   
}
console.log(calldemo(10,2));

其实call和apply方法更重要的应用场景是 “扩充函数赖以运行的作用域”

例子在下面

window.num=1;
o={
  num:4
};
function consoleNum(){
console.log(this.num);
}
consoleNum();
consoleNum.call(o)

你可能感兴趣的:(javascsript中的call和apply)