<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>7-JavaScript函数闭包中this的变化</title>
</head>
<script>
var example=function(){
var innerFunc=function(){
console.info("in innerFunc "+ this);
};
var inner=1
var func=function(){
innerFunc();//in innerFunc Window
innerFunc.call(this);//in innerFunc obj
console.info(inner);
console.info(this.info);//anoymous object此时this代表匿名对象
console.info("in func" +this);//in innerFunc Obj
};
return {
info:"anonymous object",
do:func//返回函数,
};
};
example().do();
//函数闭包的应用 串联计算器
var calc=function(start){
this.add=function(value){
start=start+value;
console.info(this);//calc
return this;
};
this.mutip=function(value){
start=start*value;
return this;
};
this.equal=function(callback){
callback(start);
return this;
}
return this;
}
new calc(1).add(100).mutip(2).equal(function(result){console.info(result)});
</script>
<body>
</body>
</html>
javascript基础之七(函数闭包中this的变化)
最新推荐文章于 2020-01-13 13:48:18 发布