[TOC]
(一) new关键字的作用
- 自动创建临时对象 ( 在函数内部使用this可以访问到这个临时对象 )
- 自动绑定该Function对象的原型 ( 统一叫做prototype )
- 把传入的参数赋给给临时对象
- 自动return这个临时对象
```javascript
<a name="ySf45"></a> ## (二) call、apply 和bind有什么区别? 三者都会改变this的指向, 区别: 1. call 和 apply 的功能相同,区别在于传参的方式不一样: 1. call的第一个参数是this要指向的对象, 第二个,第三个....都是调用函数需要的参数。 1. apply第一个参数是this要指向的对象, 第二个参数是数组或类数组。 ```javascript <script> // 1. 声明两个变量和一个函数 var username = '张三'; var age = 18; function say(provice, city) { console.log('this=', this); console.log(`我来自${provice}${city}`); console.log(`我叫${this.username},今年${this.age}岁`); } // 2. 创建一个对象 var person = { username: '老胡', age: 100 }; say('广东', '深圳'); // 3. 使用call改变this的指向:第一个参数是this将要指向的对象, 第二参数,第三个参数.....,这些参数函数调用需要传入的参数 say.call(person, '广西', '贵港'); // 4. 使用apply改变this的指向:第一个参数是this将要指向的对象, 第二参数是个数组,数组放入的是函数需要的参数 say.apply(person, ['陕西', '西安']); </script>