今天用了一天的时间,看了一下关于js的闭包函数。好像是明白了它的含义以及用法。如果欠考虑了,希望能指出。函数定义和函数表达式 位于另一个函数体内,而且 这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数 , 就叫做闭包函数。
实例
<script type="text/javascript">
// 测试是否 身体比例 身高和体重比例是否正常
// 体质指数=体重(公斤) ÷ 身高(米)的平方 kg/m^2
// 算式写法: BMI = 体重 / (身高)^2
// 正常体重 : 体重指数 = 18.5 - 24 (中国体质标准:正常范围 18.5~23.9,超重24.0~27.9,肥胖≥28.0)
// 超重 : 体重指数 = 24 - 30
// 轻度肥胖 : 体重指数 > 30
// 中度肥胖 : 体重指数 > 35
// 重度肥胖 :体重指数 > 40
var test = function() {
var obj = new Object();
obj.name = 'kevin';
obj.isHealthy = function(w,h) {
h = h/100;
var re = w/(h*h);
console.log(re);
if (re < 18.5){
return '体重轻了';
}else if (re >=18.5 && re <= 24) {
return '体重正常';
}else{
return '体重重了';
}
}
return obj;
}
var check = new test();
alert(check.isHealthy(72,173));//输入 体重kg 身高cm
</script>
isHealthy 相当于闭包函数。
//另一种写法
var test = {
'name':'kevin',
'isHealthy':function(w,h) {
h = h/100;
var re = w/(h*h);
console.log(re);
if (re < 18.5){
return '体重轻了';
}else if (re >=18.5 && re <= 24) {
return '体重正常';
}else{
return '体重重了';
}
}
}
alert(test.isHealthy(65,173));//输入 体重kg 身高cm //体重正常