- 创建一个对象
- 对象的 proto 指向构造函数的prototype
- 改变函数的this 指向,并且调用该函数。
返回一个对象( 判断如果是复杂类型返回该函数对象,简单类型返回该创建对象)
<br /> function Fun(){<br /> return 简单类型或者复杂类型<br /> }<br /> var fun = new Fun()<br /> new Fun 具体做法如下:<br /> 1.var obj = {}<br /> 2.obj._ _proto__ = Fun.prototype<br /> 3.Fun.call(obj) <br /> 4.return 判断 Fun.call(obj) 返回值是什么类型 去做判断<br />
call 、apply 、bind 的区别?
call 、apply 唯一的区别是 第二个参数是字符串和数组的区别;执行call 、apply 都会调用该方法
bind 不会调用方法。