1. 程式人生 > >javascript 閉包實現的5種方法

javascript 閉包實現的5種方法

// 閉包函式 實現方法1
function test(r){
    this.r=r
}

test.pi=3.14

test.prototype.area=function(){
    return test.pi * this.r * this.r
}

// 閉包函式 實現方法2
var test2=function(){
    var obj=new Object();
    obj.pi=3.14;
    obj.area=function(r){
        return this.pi*r*r;
    }
    return obj;
}
var i=new test2;
console.log(i.area(
8)) // 閉包函式實現方法3 var test3=new Object(); test3.pi=3.14; test3.area=function(r){ return this.pi*r*r; } console.log(test3.area(8)) //閉包函式實現方法4 var test4={ 'pi':3.14, 'area':function(r){ return this.pi*r*r; } }; console.log(test4.area(8)) //閉包函式實現方法5 var test5=new Function('this.pi=3.14;this.area=function(r){return this.pi*r*r}');
var i=new test5(); console.log(i.area(9))