首页 > 代码库 > javascript --学习this
javascript --学习this
this
在一般的强类型语言中,this指向的是这个对象本身,可在javascript中
this的取值是执行上下文环境的一部分
其实这个this并不是很难立即,只要记住二点就可以了
那就是谁caller(调用者是谁this指向的就是谁),如果有赋值语句就改变类型
我们来看几个例子就知道了
function Fd(){ this.name="test"; console.log(this); }; var f1=new Fd();//Fd {name: "test"} Fd();//window
在这里第一次是通过new出来的所以调用者是f1,而第二次是直接执行的,而Fd只是一个表达式,就相当于全局的一个函数,所以他是被window调用的
var obj={ x:10, fn:function () { console.log(this); console.log(this.x); } }; obj.fn();//obj,10 var d=obj.fn; d();//window "" obj.fn.call();//相当于上面的代码
那上面的代码是怎么回事呢?
其实是这样的,因为obj.fn赋值给了d;然后我们调用d(),步骤为:
>我们现在全局的上下文
>执行d(),进入了fn的上下文,所有调用者是window
所以在这里也验证了有赋值语句就改变类型的说法
当然还有一种特殊的情况
因为f()是一个普通的函数,所有呢,this指向window
javascript --学习this
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。