js閉包相關知識點

題目一bash

如何理解閉包,並舉例說明閉包

閉包是在一個函數內聲明瞭另一個函數,經過另外一個函數訪問這個函數的局部變量,利用閉包能夠突破函數的做用域鏈。將函數內部的變量和方法傳遞到外部。

閉包的特性:
1.函數內再嵌套函數。
2.內部函數能夠引用外層的參數和變量
3.參數和變量不會被垃圾回收機制回收。
複製代碼
舉例說明:
var count = 10;
function add(){
    var count = 0;
    return function(){
        count += 1;
        alert(count);
    }
}
var d = ddd();
d();    // 1
d();    // 2
複製代碼

JS哪些操做會形成內存泄露函數

答案:ui

1.意外的全局變量引發的內存泄漏。
function leak(){
    leak = "xxx";   leak成爲一個全局變量,不會被回收。
}
2.閉包引發的內存泄漏。
3.沒有清理的DOM元素引用。
4.被遺忘的定時器或回調。
5.子元素存在引發的內存泄漏。
複製代碼

題目二spa

console.log('x' in window); var x; x = 0;code

答案:true內存

解析:預解析,var x;變量提高。打印是判斷x是否是存在在window裏 。x聲明未賦值爲undefined。window裏有x。因此爲true。最後值爲0.作用域

閉包 有權訪問另外一個函數做用域裏變量的函數string

function box(){
    return function(){
        return 'lee';
    }
}
alert(box); //function box(){ return function(){ return 'lee'}}
alert(box());   //function(){ return 'lee'}
alert(box()()); //lee
複製代碼
相關文章
相關標籤/搜索