call、bind、apply、new
1.call
call,能够改变一个函数的this指向
如下,调用了a.fn,那这个时候,这个this肯定就是a了,不过后面调用了call,传入一个a
那么这个时候,fn里面的this是指向a的,然后1,2是参数传入
2.bind
bind方法和call、apply方法有些不同,但是它们都可以用来改变this的指向。
bind是直接返回一个全新的函数,这个函数的this发生了改变。
3.apply
与call类似,apply传参的方式是以数组的形式传入,实际应用上还是call比较多。
4.new
1.创建一个空的对象{}
2.空对象的proto指向构造器的prototype(链接原型)
3.this指向创建出来的空对象
4.执行构造器,this附加上对应的值
5.如果构造器有返回值,则返回对应的值,否则,返回this。
实现new关键字