私は 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
なぜそれが起こるのですか?また、違いを説明するためにどの用語を使用すればよいでしょうか?