l例子一:
<script>
function outer(){alert(this);
function inner(){
alert(this);
}
//this.inner();
inner();//这样可以原因
}alert(this);//外围全局对象
this.outer();//全局对象
//1:当函数作为函数而不是方法的时候调用,这里的this为window对象,
//2:由于定义一个函数就会生成一个函数对象,保存:为函数名的属性中,
//3:如果该函数在顶层代码中,为全局对象的属性,不然为调用对象的属性,并且全局对象的属性可以不写window直接调用
//在这里注意this.inner(),不对,它应该为调用对象的inner,不写不代表没有,所以如果写的话,直接写,但我们知道是调用对象(call object javascript权威指南)的方法</script>
例子二:
<script>
function outer($data){
outer.call(this,5);
document.write($data);
}
outer(1);
</script>
这个代码比较恶心,因为在执行outer.call(this,5)
代码为:this.m =outer;
this.m(5);delete this.m;死循环
<script>
function outer($data){
document.write($data);
outer.call(this,5);
}
outer(1);
</script>
同样是15555555555555555555555...知识说明this是全局对象,可以调用自己的方法
其它的this,以后再说,基于对象,肯定是创建的对象。其它在事件模型再说