javascript学习笔记1————执行环境及作用域
在javascript中每一段代码都有执行环境,全局变量和函数都是作为window对象那个的属性和方法创建的。某个执行环境中的所有代码被执行完毕后,该环境就会被销毁,包括其中的变量及函数定义。
在函数内部未定义的变量是全局变量,定义的变量只有局部变量,局部变量在作用域外访问不到
a = “梦想天空”; //全局变量
var b = “海外” ; //局部变量
当代码在一个环境中执行的时候,会创建变量对象的一个作用域链。
var color = "blue";
function changeColor()
{
var anotherColor = "red";
function swapColor()
{
var tempColor = anotherColor;
anotherColor = color;
color = tempColor;
//这里可以访问color,anoherColor和tempColor
}
//这里可以访问color,anotherColor,但是不能访问tempColor
swapColor();
}
//这里就只能访问color
changeColor();
用下图来解释上面代码的作用域
call()与apply()延长变量作用域
一段代码解释 call与apply的使用方法以及作用
//定义一个全局函数
function foo()
{
console.log(this.friut);
}
//定义一个全局变量
var friut = "apple";
//自定义一个对象
var pack = {
friut = "banner";
}
foo.apply(window); //此时foo中的this相当于windows,输出apple
foo.apply(pace); //此时foo中的this相当于pack,输出banner