函數(shù)在運(yùn)行時(shí),函數(shù)所創(chuàng)建的任何對象以及參數(shù)會以對象的形式存儲于運(yùn)行時(shí)環(huán)境,參數(shù)的名稱就是新對象的名稱,新對象的值就是用戶輸入的參數(shù)值。

調(diào)用函數(shù)時(shí)的活動環(huán)境又可以成為調(diào)用環(huán)境(calling environment)。
R運(yùn)行時(shí)需要調(diào)動一些對象,通常來說這些對象都是內(nèi)部定義的參數(shù),按照作用域規(guī)則,R會先從運(yùn)行時(shí)環(huán)境搜索,然后父環(huán)境,并依次向上檢索,而內(nèi)部參數(shù)在運(yùn)行時(shí)環(huán)境就可以搜索到。
函數(shù)運(yùn)行后的結(jié)果會返回到調(diào)用環(huán)境,如果將函數(shù)的運(yùn)行結(jié)果賦值給某個(gè)對象,那么該對象會存儲在調(diào)用環(huán)境中。
函數(shù)中的對象,如果是在全局環(huán)境定義的,那么函數(shù)運(yùn)行時(shí)就會在全局環(huán)境中搜索到原對象;如果是在函數(shù)內(nèi)部定義的,那么就會在運(yùn)行時(shí)環(huán)境搜索到該對象副本。
這個(gè)概念有些難理解,能不能理解成,函數(shù)運(yùn)行時(shí),運(yùn)行時(shí)環(huán)境相當(dāng)父環(huán)境的一個(gè)拷貝環(huán)境,將父環(huán)境的對象拷貝到運(yùn)行時(shí)環(huán)境中進(jìn)行一系列運(yùn)算然后返回結(jié)果,不管在運(yùn)行時(shí)環(huán)境對這些拷貝對象做如何的更改,父環(huán)境中的原對象都不會發(fā)生變化。這就類似于PS中新建一個(gè)拷貝圖層,為了不改變原圖層,在復(fù)制圖層中進(jìn)行修圖,最終要的是拷貝圖層呈現(xiàn)的結(jié)果。

