我有一个对象,假设它被称为obj
。我可以调用一个函数obj$a()
,这样可行。但是,当我调用内部调用obj$b()
的{{1}}时,会抛出错误,指出它无法找到self$a()
函数。我该怎么办?
答案 0 :(得分:2)
您需要确保函数共享一个环境/在同一个闭包中。您可以将它们封装在虚函数中。看看这个例子:
gives_error <- list(a = function() {
print("Hello from a")
},
b = function(){
print("Hello from b")
a()
})
gives_error$b()
will_work <-
(function() {
a = function(){
print("Hello from a")
}
b = function(){
print("Hello from b")
a()
}
list(a = a, b = b)
})()
will_work$b()