方法链接:按照概念所述,每个方法都返回一个对象,从而允许 调用在单个语句中链接在一起。链接为 语法糖,无需中间变量,
只想知道,方法链接(return a reference to a object
)在(anonymous? )intermediate variables
中创建stack
了吗?
在Java中
例如:a.functionA().functionB().functionC().functionD()
在上面的声明中
A。在称为a
的{{1}}之后,functionA
将在JVM
中分配temporary variable
(指向对象B)以调用下一个函数(例如stack
)?
B。或者仅function B
调用了函数variable a(in stack)
,然后functionA
指向 returned value(address)(stored somewhere else)
,在object B
中没有创建任何中间变量?
在JavaScript中
例如:
人有一个heap
对象,那么您可以使用stack
来访问内部的属性,例如,在这种情况下,prototype
prototype
将创建一个中间对象堆栈中的变量?
答案 0 :(得分:0)
这取决于实现。
但是,在大多数实现中,链接仅更新当前实例并返回其引用,因此不会创建任何中间变量。
例如:
public class A {
private int a;
private int b;
public A(){}
public A functionA() {
return this; // In most implementations, the `this` is returned for chaining
}
public A functionB() {
return this;
}
}