Javascript 新fnname和新fnname()之间有什么区别?
我用Javascript创建了一个名为Javascript 新fnname和新fnname()之间有什么区别?,javascript,Javascript,我用Javascript创建了一个名为Class1的类 function Class1(){} 现在,我可以使用new操作符创建Class1的对象。例如: var obj1 = new Class1(); 我最近还发现,您可以使用: var obj1 = new Class1; 它们是相同的还是在使用上有什么区别?没有区别。如果不添加(),则解释器会推断出它们。这甚至是一个广泛使用的优化技巧 如果您的构造函数不接受任何参数,您只需执行以下操作: new MyClass1 括号将自动添加
Class1
的类
function Class1(){}
现在,我可以使用new
操作符创建Class1
的对象。例如:
var obj1 = new Class1();
我最近还发现,您可以使用:
var obj1 = new Class1;
它们是相同的还是在使用上有什么区别?没有区别。如果不添加
()
,则解释器会推断出它们。这甚至是一个广泛使用的优化技巧
如果您的构造函数不接受任何参数,您只需执行以下操作:
new MyClass1
括号将自动添加,就像插入分号一样。不过要小心,只有new
关键字才强制执行此行为
实例化是唯一允许跳过括号的场景。没有区别。如果不添加
()
,则解释器会推断出它们。这甚至是一个广泛使用的优化技巧
如果您的构造函数不接受任何参数,您只需执行以下操作:
new MyClass1
括号将自动添加,就像插入分号一样。不过要小心,只有new
关键字才强制执行此行为
实例化是唯一允许跳过括号的场景。这只是一种简写语法。如果没有向构造函数传递任何参数,可以省略括号
var obj1 = new Class1;
完全一样
var obj1 = new Class1();
这只是简单的语法。如果没有向构造函数传递任何参数,可以省略括号
var obj1 = new Class1;
完全一样
var obj1 = new Class1();
如中所述,即Javascript规范:
11.2.2新操作员
产品<代码>新表达式<代码>的评估如下:
new MemberExpression参数
的计算如下:
newfoo
将调用带有空参数列表的Foo
,就像newfoo()
一样
这两种语法之间没有区别。如中所述,即Javascript规范:
11.2.2新操作员
产品<代码>新表达式<代码>的评估如下:
new MemberExpression参数
的计算如下:
newfoo
将调用带有空参数列表的Foo
,就像newfoo()
一样
这两个语法之间没有区别。示例行2和3之间有什么区别?@Sebas:no;没有区别。@Sebas语法与OOP有什么关系?是的,你是对的,也许我应该参考标准?我的意思是,这绝对不是共同协议的目的。事实上,我认为Javascript是唯一允许它的语言。注:我的第一条评论应该是@Sebas:我已经看到很多地方使用了
newclass1
,我想说它是“普通的”。示例行2和3之间的区别是什么?@Sebas:No;没有区别。@Sebas语法与OOP有什么关系?是的,你是对的,也许我应该参考标准?我的意思是,这绝对不是共同协议的目的。事实上,我认为Javascript是唯一允许它的语言。注:我的第一条评论应该是@Sebas:我已经看到很多地方使用了newclass1
,我认为这是“常见的”。