平常的函数声明调用function foo(){},foo();若无return语句,则返回undefined。
new声明函数,函数体里无return或者return 基本数据类型,函数返回this,否则返回对象
函数的调用方式:
1、直接调用 foo()
2、对象方法调用 o.method()
3、构造器 new foo()
4、call/apply/blind func.call(o)
冒充改变作用域
var color= ”红色的“ //全局
var box = {
color:"蓝色的" //局部
}
function sayColor(){
alert(this.color);
}
sayColor(); //全局
//用call来实现对象冒充,冒充box下,冒充window下
sayColor.call(window) //冒充window红色的
sayColor.call(this) //this就是window
sayColor.call(box) // 冒充box 作用域就在box对象里面,所以color是蓝色的