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))

 

posted @ 2018-12-02 14:44  飞翔的cloud  阅读(1818)  评论(0编辑  收藏  举报