发表于: 2017-07-26 21:00:39

1 855


今天完成的事情:(总结一句就是彻底弄懂了阮一峰的博客讲的是啥,为我的智商深深捏了把汗。)

看this的相关知识点,学习this过程中,红包书的第一段话起到了提纲挈领的作用:

this对象是在运行时基于函数的执行环境绑定的,在全局函数中,this就是window,当函数被作为某个对象的方法调用时,this就是那个对象,匿名函数的执行具有全局性,也就是说,匿名函数this指向window。

1.先看下面这个例子,o是一个对象,这里函数test是被作为一个对象的方法调用的,this指向的就是那个对象,也就是o,this.x

自然也就是o。x=1,我试着在test()里面家里一个x=12,发现alert的结果任然是1,完全符合定义要求。

function test(){

//x=12;

alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m(); // 1

2.作为构造函数调用,其实也是一样符合“函数test是被作为一个对象的方法调用的,this指向的就是那个对象”这一规定,this因为指向的是o,所以this的x就是o的x,即this.x=1等价于o.x=1,

 function test(){
this.x = 1;
}
var o = new test();
alert(o.x); // 1

为了进一步证明this指向的是o函数,我们在第一个例子中的函数里加上this.y=22;alert(this.y)的结果是22,

function test(){

this.y=22;

alert(this.y);

}
var o = {};
o.1;
o.test;
o.m()//22

3.apply调用的过程是神奇的,apply可以钦定一个this的指向对象,apply()的参数为空时,默认调用全局对象。当apply(o)时,this指向对象o,alert=o.x=1.

var x = 0;
function test(){
alert(this.x);
}
var o={};
o.x = 1;
o.m = test;
o.m.apply(); //0

明天计划的事情:

学习angular,看书,做任务。

遇到的问题:看不懂别人写的东西的最主要原因是基础不行,红包书看得太少,光理解人家提到的概念就得一点点百度,指望0基础理解别人的技术博客是幼稚的,看书真的很重要,不在于进度,只要每天啃一点,把一个知识点弄懂了,真的受益匪浅。
收获:红包书虽然厚,但是每一句话都是精粹,只有深刻理解了才能学懂。


返回列表 返回列表
评论

    分享到