关于前端:new的实现

new 所做的事:

  1. 创立一个对象
  2. 将函数内的this指向这个对象
  3. 执行函数内的办法
  4. 返回这个对象

其中须要留神:

  1. 创立一个对象,并且这个对象继承函数原型的属性和办法
  2. 如果函数外部没有返回一个对象类型,那么会返回第一步创立的对象
`function myNew(Fn, ...args) {`
 `//     创立一个对象`
 `var obj = Object(Fn.prototype)`
 `// 用obj调用fn`
 `var resault = Fn.apply(obj, args)`
 `// 返回`
 `var type = typeof resault`
 `var isObj = resault != null && (type === 'object' || type  ==='function')`
 `return isObj ? resault : obj`
`}`

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理