a <- 123
f1 <- function(){
a + 1
}
f1() # 124
f2 <- mask_function2(f1, a = 1)
f2() # a is masked with value 1, return 2
environment(f1) # global env
environment(f2) # masked env
env <- environment(f2)
identical(parent.env(env), environment(f1)) # true
env$a # masked variables: a=1
Run the code above in your browser using DataLab