【JavaScript總結】JavaScript語法基礎:JS高級語法

作用域鏈:
在這裏插入圖片描述
1.JS中只有函數能夠限定作用域的範圍;
2.變量處理在制定的函數範圍內,還有一個特殊的作用域,就是沒有用var 聲明的全局作用域
3.js中的作用域鏈是爲了清晰的表示出所有變量的作用範圍,同一作用範圍的變量處在同一作用域鏈上
4.在script中表示的第一個作用域鏈:0鏈,如果有函數,表示在這個位置第二個鏈,記爲1鏈,依次得到2鏈,3鏈
5.變量的訪問規則:現在當前作用域找,找不到就往上找,直到找到0鏈,還沒有就拋異常
注意:
函數也是變量
在這裏插入圖片描述
沙箱模式:爲了安全,不污染別的變量

(function(){})();

閉包
  閉包就是函數裏面的變量而已,只不過它在函數裏面,這個整體就叫做閉包,別人訪問不到它,它就形成一個壁壘一樣,被包裹的東西
  它就像牆一樣包裹起來,你看到不到它。
  對應了JavaScript的面向對象的特性,使之具有私有變量
  在這裏插入圖片描述
使用時:爲了防止性能損失,可以使用閉包先存一部分數據

Var foo1= function(){ };
Var foo2=(function(){})(); 

函數的四種調用形式

  1. 函數調用 this(全局變量)
  2. 方法調用 this (當前對象)
  3. 構造器調用 this(表示創建當前對象)
  4. apply與call調用 上下文調用,this根據參數自定義

面向對象與原型
JavaScript對象:鍵值對
JavaScript方法:值爲函數的屬性
JavaScript原型:對象繼承實體
 C系繼承模型
   例如:C++,C#,Java
   繼承:模板類
 原型繼承
   例如:JavaScript
   繼承:(實體),有一個對象存在,構造函數設置原型爲這個對象;創建出來的對象就繼承了這個對象(從對象那裏繼承)
   原型:就是函數的prototype屬性
   在這裏插入圖片描述
 原型鏈
   每個對象有一個屬性 叫_proto_,這個屬性就是對象的原型
   所以,需要原型,那就一定要有函數
   高級
     對象有原型,而原型也是對象,原型也有原型
     所有對象來自於Object對象
     所有函數來自於Function對象
   在這裏插入圖片描述
   所有的函數是對象,繼承自Function.prototype
               Function.prototype是對象,繼承自Object.prototype
                               Object.prototype是對象,繼承自null

原型系統中
  操作對象的成員
  讀取操作:從當前向上尋找,找到爲止
  修改操作:在當前找,找到就用,沒有找到就創建

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章