function Foo(){
}
Foo.prototype.a = 1
var f1 = new Foo
var f2 = new Foo()
console.log(f1.a,f2.a)
如上面的代码,new Foo的时候为什么可以加括号也可以不加括号?
function Foo(){
}
Foo.prototype.a = 1
var f1 = new Foo
var f2 = new Foo()
console.log(f1.a,f2.a)
如上面的代码,new Foo的时候为什么可以加括号也可以不加括号?
函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。
楼上所说的正解,不过,一般为了严谨代码结构,或者给后面维护代码的人一种直观的感觉,最好都按大多数人的写法就写吧,不要一位的追求自己的代码只有自己看的懂的就是大神,这个事错误的。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
先说一下new Foo 什么时候加括号和不加括号是等同的吧:
至于我所知道的出处是《JavaScript权威指南》
JavaScript里面有一些问题就像是妖精一样,你只是听大牛说有这
么个东西,但是完全不知道是从哪里来的,┑( ̄Д  ̄)┍ 。