函数

平常的函数声明调用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是蓝色的

原文地址:https://www.cnblogs.com/bhan/p/5442327.html