// 闭包函数 实现方法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))