Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • js new操作符都做了哪些事情

js new操作符都做了哪些事情

1.创建一个空对象
let obj = {}
2.设置原型链
obj.__proto__ = Fn.prototype
3.改变this指向,使Fn的this指向obj,并执行Fn函数体
let result = Fn.call(fn);
4.判断Fn的返回值类型,如果是值类型,返回fn,如果是引用类型,就返回这个引用类型的对象

关于第四点,如果不是很清楚的话,我们来看下面的两个例子


// 第一种
function Person(name){
  this.name = name;
  return 1; // return undefined/NaN/'string'/null
}
let p = new Person('哈哈');
console.log(p); // { name:'哈哈' }


//第二种
function Person(name){
  this.name = name;
  return { age:20 };
}
let p = new Person('哈哈');

但是我们一般使用这种构造函数,不会有返回值。如果没有写return,相当于return undefined,JavaScript中的函数都是这样。undefined是值类型的,因此丢弃它,返回obj。

Edit this page
最近更新: 2025/6/27 02:24
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人