求star

开源不易,喜欢请点个star吧

Ocean Han
93 字
1 分钟
使用new fn 和new fn()的细微区别
2022-08-12

在多数情况下,两种方法的结果是一致的:#

function Parent(){
  this.num = 1;
}
console.log(new Parent());//输出Parent对象:{num:1}
console.log(new Parent);//输出Parent对象:{num:1}

例外:#

function Parent(){
  this.num = 1;
}
console.log(new Parent().num);//1
console.log(new Parent.num);//报错

原因#

TIP
  • new Parent().num 的执行顺序相当于(new Parent()).num
  • new Parent.num相当于new (Parent.num)
  • 由此看来 new 的构造函数后跟括号优先级会提升
使用new fn 和new fn()的细微区别
https://blog.oceanh.top/posts/frontend/使用new-fn和new-fn的细微差别/
作者
Ocean Han
发布于
2022-08-12
许可协议
CC BY-NC-SA 4.0
最后修改时间
2024-08-10 10:08:49