引用reference做用域scope閉包closure上下文context用法

引用(reference)、做用域(scope)、閉包(closure)以及上下文(context)是JavaScript重中之重的基礎,也是學習好JavaScript的基礎。在這裏我以淺顯的理解給你們分享一下:編程

1、首先說明下引用(定義):引用是指向一個對象實際位置的指針;數組

說明:在這裏你們也許這話不大好理解,淺顯地說:「引用」 = 「別名」。(我想)也就是在編程語言給變量、對象…..等起個名稱,以便於在須要的時候進行調用。閉包

變量也是對象,那下面就以變量簡單的事例爲例編程語言

例如:假若有個變量 a, 想在下次用的時候引用它,給它起個別名 b函數

 

 Int a學習

   Int &b =a//記住:指向 對象實際位置的指針。(嘿嘿若是你對指針很理解,那下面就不用看了,編程嘛,學習不會的知識)spa


 注意 1:在這裏是對變量的引用,內存並不爲它開闢實際的內存單元,b對錶明同一變量單元,在申明一個引用時,必須同時使之初始化。(只有申明,沒有定義,只是申明它和原有的某一變量的關係。在引用時 a 兩值同時隨之其中之一的變化而變化)。指針

注意2:在你申明一個引用後(b,該引用一直與其表明的變量相聯繫,不能再做爲其它變量的別名(一一對應)。對象

 

2、學習了引用,下面理解下引入引用的目的:ip

一句話:利用其做爲函數的參數,以擴充函數傳遞數據的功能。(在下一篇文章裏詳細比較了參數傳遞的形式)

在這裏出現一個我目前很不明白的現象(但願讀者賜教,不勝感激):

 從引用的概念上說是指向對象實際位置的指針;可是在JavaScript裏出現了(在C++語言未出現,而且明文規定不能夠創建引用的數組)緣由(我的):數組名只表明數組的首地址,自己不是一個佔有存儲空間的變量

例如:

///創建一個數組的對象

Var items new { items1, items 2, items 3};

Var itemRef = items;//數組對象的引用

//將一個元素添加到數組中

Items.push(「items4」);

相關文章
相關標籤/搜索