js中newfn与newfn()的区别
在有些代码中,看见了let fn = new Fn()和let fn = new Fn,刚开始有些⼈或许和我⼀样感到些许疑惑,但潜意识的也会想到,这两者说不定就是⼀样的。没错!!在没有参数的情况下这两种的意义就是⼀样,只不过后者简写了点。
new 运算符创建⼀个⽤户定义的对象类型的实例或具有构造函数的内置对象类型之⼀。
new constructor[([arguments])]
参数
构造函数(constructor)
⼀个指定对象实例的类型的函数。
传参(arguments)
⼀个⽤来被构造函数调⽤的参数列表。
1. ⼀个新对象被创建。它继承⾃foo.prototype.
js arguments2. 构造函数 foo 被执⾏。执⾏的时候,相应的传参会被传⼊,同时上下⽂(this)会被指定为这个新实例。new foo 等同
于 newfoo(), 只能⽤在不传递任何参数的情况。
3. 如果构造函数返回了⼀个“对象”,那么这个对象会取代整个new出来的结果。如果构造函数没有返回对象,那么new出
来的结果为步骤1创建的对象。(⼀般情况下构造函数不返回任何值,不过⽤户如果想覆盖这个返回值,可以⾃⼰选择返回
⼀个普通对象来覆盖。当然,返回数组也会覆盖,因为数组也是对象。)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论