首页 > 代码库 > 【转】JavaScript里的this指针
【转】JavaScript里的this指针
情形一:传入的参数是函数的别名,那么函数的this就是指向window;
情形二:传入的参数是被new过的构造函数,那么this就是指向实例化的对象本身;
情形三:如果我们想把被传入的函数对象里this的指针指向外部字面量定义的对象,那么我们就是用apply和call
我们可以通过代码看出我的结论,代码如下:
<script type="text/javascript">var name = "I am window";var obj = { name:"sharpxiajun", job:"Software", ftn01:function(obj){ obj.show(); }, ftn02:function(ftn){ ftn(); }, ftn03:function(ftn){ ftn.call(this);//Call和apply是将this指针指向方法的第一个参数 }};function Person(name){ this.name = name; this.show = function(){ console.log("姓名:" + this.name); console.log(this); }}var p = new Person("Person");obj.ftn01(p);obj.ftn02(function(){ console.log(this.name); console.log(this);});obj.ftn03(function(){ console.log(this.name); console.log(this);});</script>
结果如下:
最后再总结一下:
如果在javascript语言里没有通过new(包括对象字面量定义)、call和apply改变函数的this指针,函数的this指针都是指向window的。
【转】JavaScript里的this指针
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。