在函数内部,有一个特殊的对象this;函数内的属性和方法,都是this下的属性和方法;如:
var name="tom";
function add(){
alert (name)
};
add() //tom;
当调用函数add()==>tom;实际上当调用函数add时,函数add内部的参数name都有一个前缀this;即
var window.name="tom";
function add(){
alert (this.name)
};
window.add() //tom;这样可以看出当前this指向window;
Function.apply(obj,args)方法能接收两个参数:
obj:这个对象将代替Function类里this对象
args:这个是数组或类数组,apply方法把这个集合中的元素作为参数传递给被调用的函数。
例如: function num(a,b){
console.log(a+b)
};
function add(num1,num2){
num.apply(this,arguments)
};
add(10,20) =>结果为30;
另一个例子 var color="red";
var objColor={
color:"green"
};
function addColor(){
console.log(color)
};
addColor.apply(this) ==>red;
addColor.apply(objColor) ==>green;
通过二个例子可以看出;方法apply可以扩充函数运行的作用域。