js构造对象问题

function Person {}
Person.prototype.test = function() {
} 

new Person()

new Person

这两种写法有相同的效果,不加括号为什么和前一个效果一样

阅读 1.8k
2 个回答
new constructor[([arguments])]

当代码 new Person(...) 执行时:

一个新对象被创建。它继承自Person.prototype.
构造函数 Person 被执行。执行的时候,相应的传参会被传入,同时上下文(this)会被指定为这个新实例。

new Person 等同于 new Person(), 只能用在不传递任何参数的情况。


有什么问题吗,默认是不加括号的时候即是不传值

function Person(val){this.val=val};//类似这种传值的就得加

并且加()和不加得优先级也是不同

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题