一、理解参数
- 在使用function 关键字定义(非箭头)函数时,可以在函数内部访问 arguments 对象,从中取得传进来的每个参数值
- 如果函数是使用箭头语法定义的,那么传给函数的参数将不能使用arguments 关键字访问,而只能通过定义的命名参数访问。
二、函数内部
属性名称 | 内容 |
---|---|
arguments | arguments 是一个类数组对象,包含调用函数时传入的所有参数 |
this | 在标准函数中,this 引用的是把函数当成方法调用的上下文对象,这时候通常称其为this 值(在网页的全局上下文中调用函数时,this 指向windows) |
caller | caller 这个属性引用的是调用当前函数的函数,或者如果是在全局作用域中调用的则为null。 |
new.target | 如果函数是正常调用的,则new.target 的值是undefined;如果是使用new 关键字调用的,则new.target 将引用被调用的构造函数。 |
三、函数属性和方法
属性名 | 功能 |
---|---|
length | length 属性保存函数定义的命名参数的个数 |
prototype | prototype 是保存引用类型所有实例方法的地方,这意味着toString()、valueOf()等方法实际上都保存在prototype 上,进而由所有实例共享 |
apply() 、call() | apply() 和 call() 这两个方法都会以指定的this 值来调用函数,即会设 置调用函数时函数体内this 对象的值 |
bind() | bind()方法会创建一个新的函数实例,其this 值会被绑定到传给bind()的对象 |