搜索

首页  >  问答  >  正文

javascript - js构造对象问题

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

new Person()

new Person

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

習慣沉默習慣沉默2801 天前575

全部回复(2)我来回复

  • 巴扎黑

    巴扎黑2017-05-19 10:33:03

    new constructor[([arguments])]

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

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

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


    回复
    0
  • 迷茫

    迷茫2017-05-19 10:33:03

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

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

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

    回复
    0
  • 取消回复