概念 : 大函式裡面巢狀小函式 小函式可以使用大函式的變數 就形成了閉包(作用域的產物)
條件 :1 必須有二個函式 並且是巢狀關係
2 在全域性中必須接受返回值
閉包產生的原因 :首先js最大的缺點就是沒有類 尤其是es5 變數和函式都使用在相同空間 就會照成函式和變 量重名 這樣就會產生全域性汙染 然而閉包就能產生密閉空間 形成封閉的空間 這樣就不會造成變數和函式汙染
優點 :1 保證內容更加封閉 命名更加安全
2 形成了封閉空間 更容易模組化開發
3 全域性可以操作區域性變數
4 資料持久化延長了資料的生命週期
概念 :簡單來說 就是我們建立的每乙個函式都會自帶乙個prototype屬性 這個屬性會指向乙個物件 這個物件稱為原型物件·
優點 :1 在記憶體中節省資源,提高系統效能
舉例:這是乙個用原型構造的陣列方法,將求和的sum方法掛在原型上,可以使這個方法被重複使用,當然,重點是節省記憶體資源
2 優先順序
原型的優先順序類似於css中的優先順序,沒有使用原型的建構函式,就好比css中的行內樣式,優先順序高,而與原型掛鉤的屬性和方法 ,就像是style的內聯樣式,優先順序低於行內樣式。所以在呼叫同一種方法名的時候,系統會優先呼叫掛在原型上的方法!
js面試題總結
1 預編譯 script varx 1 y z 0 function add n y add x 2 function add n z add x 問執行完畢後 x,y,z 的值分別是多少?x 1 y undefined z undefined 函式表示式沒有return 所以為undefined ...
js 面試題總結
1.typeof返回資料型別有哪些 number,string,boolean,object,undefined,function 2.強制型別轉換有哪些?隱式型別轉換有哪些?轉換為string tostring 轉換為number number parseint parsefloat 轉換為boo...
js程式設計面試題總結。
function fn function add n function minus n add minus foreach item 另一種寫法 number.prototype.add add number.prototype.minus minus console.log 5 add 3 min...