我不是一个 OOP 的人,所以有人可以用外行的方式解释这个简单的概念。
当我从 foo.parent 函数调用 foo.child 时,它似乎将 A=7 参数向下传递到 foo.child 对象中,并按照我的预期覆盖或优先于 foo.child 中的 A=3 默认参数。
foo.parent <- function(A=7) foo.child(A)
foo.child <- function(A=3) 2+A
foo.parent(A=7)
#[1] 9
但是当我在 foo.parent 中实例化它时,参数 A=7 会向下传递或强制实例化对象使用 A=7; 相反,它使用子对象的参数 A=3
foo.child<-function(A=3) 2+A
foo.parent <- function(A=7){
foo.child(A=3)
}
foo.parent(A=7)
#[1] 5
为什么会这样?我会用什么术语来描述这些差异?