
##his 我们主要研究的是函数里的this
* 1元素绑定事件,当事件触发的时候,this就是事件触发时的元素
* 2this是谁跟函数在哪里定义和在哪里执行没关系,就看调用函数的主体是谁,其实也就是看函数执行的时候"."前面是谁,this就是谁
* 3自执行函数的this是window,无论在哪都是window
* 4在构造函数中的this是当前实例
* 5call和apply都会强制改变this。
*
案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
console.log(this); /*document.getElementById('div1').onclick = function (){ console.log(this); }*/ function fn(){ //这是函数的定义 console.log(this); } //window.fn(); //这才是函数的执行,点前面是window.所以this就是window /* var obj = { fn : fn }*/ //obj.fn(); // var fo = { x : function (){ console.log(this); fn(); //this ==> window } } fo.x(); //fo*/ var haha = { y : (function (){ console.log(this); return function (){ console.log(this); } })() } haha.y(); ~function (){ console.log(this); fn(); }()*/ // 一个自定义类 构造函数 function FE(){ //console.log(this); this.x = 'ga'; } FE();//当成一个函数去运行 var ff = new FE(); //就把FE当成一个类去运行,而fe就是FE的一个实例 console.log(ff);
|
近期评论