6、函数是一种对象型数据
7、函数可以被调用,函数自己无法运行,当一个函数运行时,总是被一个对象调用,这个对象也可以是他自己
8、当没有明确指明调用函数的对象时,这个对象就是window对象
9、函数被调用时,函数体内的this指针指向调用该函数的对象
10、函数被调用时总是运行在他被声明时的语法环境中的
不怕头大的试试看下面的代码

var x=99;
function xb(){
this.x=100;
this.a = (function(){return this.x}).call(this);
this.b = (function(){return this.x})();
this.method = function(){return this.x;}
}
var xbObj = new xb();
alert(xbObj.x);
alert(xbObj.a);
alert(xbObj.b);
alert(xbObj.method());
var name = "window";
function kkk(){
alert(this.name);
}
kkk();
kkk.call(kkk);
var param = 10;
function outerF(){
alert("innerF param:"+param);
alert("innerF this.param:"+this.param);
}
var jjj=function (){
var param=11; //注释掉看看 innerF();
this.param=12;
this.m1=function(){
var param=13; //注释掉看看 innerF();
alert("m1 param:"+param);
alert("m1 param:"+this.param);
function innerF(){
alert("innerF param:"+param);
alert("innerF this.param:"+this.param);
}
innerF(); //call by window
outerF();//call by window
}
alert("jjj param:"+param);
alert("jjj this.param:"+this.param);
}
jjj.param=14;
var jjjObj = new jjj();
jjjObj.m1();
jjjObj.m1.call(jjj);
jjjObj.m1.call(jjjObj);