目录
在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变
所有未定义(未var)直接赋值的变量自动声明为拥有全局作用域
①修改this的指向 ,改变执行环境上下文,将指向改变到obj
①修改this的指向 ,改变执行环境上下文,将指向改变到obj
函数的概念
函数允许封装一系列代码来完成特定任务,当想要完成某一任务时,只需要调用相应的代码即可。
方法(method)一般为定义在对象中的函数。
函数的作用
功能的封装,直接调用,代码复用率提高
函数的声明
1)常规声明
function 函数名(形参列表){
//函数体
//写在return后面的语句失效
}
2)函数表达式
var 函数名 = function(形参列表){
//函数体
}
这种形式看起来像常规的变量赋值,先创建一个匿名函数,然后赋值给变量函数名。
在JS中如果要想使用一个变量,必须先给这个变量赋值,所以函数表达式也不例外,在调用之前,必须先给它赋值,否则会报错。
3)函数声明提升
函数声明提升到代码的最前边,可以直接调用函数
函数的内部属性
只有在函数内部才能访问的属性(this也可以在函数外部进行使用)
1、arguments
arguments是一个类数组对象,专门用来保存实际参数列表,包含着传入函数中的所有参数。
arguments的属性:
1)callee属性
该属性是一个指针,指向拥有这个arguments对象的函数,仅当相关函数正在执行时才可以使用,可以用来做一个递归
2)length属性
指接受形参的个数,与实参的个数没有关系
2、this
面向对象语言中 this 表示当前对象的一个引用。
在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变
- 在方法中,this 表示该方法所属的对象。
- 如果单独使用,this 表示全局对象。node里是一个{ },浏览器里windows是全局对象