在dart中,我可以通过两种方式创建对象并调用方法:
[第一个:
ClassA a = new ClassA();
a.methodA();
第二个:
new classA().methodA();
继续执行此操作是否有负面影响?假设我想在另一个类中从ClassA调用4-5个方法,它将产生任何负面影响f.x。第二种方式来提高性能?
这仍然是完全相同的对象创建过程,只是一个简单的构造函数调用。唯一的区别是,在一种情况下,您给结果命名(a
),在另一种情况下则没有。
这不像是通过不将对象保存到变量来节省内存。在这两种情况下,对新ClassA
对象的引用都必须存在somewhere(无论是否明确命名),否则methodA
将如何知道要对哪个对象进行操作?
但是,两者之间有区别:
ClassA a = new ClassA()
a.methodA()
a.methodB()
a.methodC()
a.methodD()
a.methodE()
对
new ClassA().methodA()
new ClassA().methodB()
new ClassA().methodC()
new ClassA().methodD()
new ClassA().methodE()
在第一种情况下,您正在重用同一对象a
(来自单个构造函数调用)作为所有5个实例方法调用的目标。在后一种情况下,您有5个不同的对象(来自5个独立的构造函数调用),每个对象都是一个方法调用的目标。这些显然可以具有非常不同的语义。