JS new关键字快速掌握

27 阅读1分钟

一、new 关键字的作用

new关键字可以创建一个对象,而构造函数的this会指向new创建的这个对象

二、new关键字的操作过程(面试常见)

  1. 创建一个新的对象
  2. 将创建的空对象的原型指向构造函数的prototype属性上
  3. 改变this指向;--> 创建的空对象会成为构造函数的上下文
  4. 判断构造函数的返回值,如果return的是基本类型,则返回创建的对象,如果是引用类型,则返回这个引用类型

三、new 一个构造器的步骤---代码示例

function Foo(){
    console.log(this)
    // 三种情况都要分别删除注释,对比一下打印结果
    // return {name:rebecca}
    // return [1,2,3]
    //return 1111
}
console.log(new Foo())

四、new 一个新对象--代码示例

new Base()

// 第一行,我们创建了一个空对象obj;
new obj = {};
// 第二行,我们将这个空对象的 __proto__ 成员指向了 Base 函数对象 prototype 成员对象;
obj.__proto__ == Base.prototype; 
// 第三行,我们将 Base 函数对象的 this 指针替换成obj,然后再调用 Base 函数,
// 于是我们就给 obj 对象赋值了一个 id 成员变量, 这个成员变量的值是 ”base” ,
// 关于 call 函数的用法。
Base.call(obj)