首页 > 编程语言 > 详细

Javascript 中的this指向

时间:2017-08-17 09:45:09      阅读:210      评论:0      收藏:0      [点我收藏+]

1、作为对象的方法调用,this值当前对象

   var obj={
         name:"xiao",
          getName(){
this.name //xiao } }
obj.getName();

2、作为普通函数调用  this指向window,  当一个函数体 ,自执行时,里面的this指向window,若想改变this  可以var that = this  

  var obj={
         name:"xiao",
          getName(){

            this.name   //xiao
  }  
}    
var fn = obj.getName

fn();//undefined

 

3、构造函数调用时   指new的对象

function fn(name){
     this.name=name  
     return {
        name:‘bb‘
    }
}

var obj =new fn(‘gg‘)

obj.name//  bb  this指返回的对象

 

还有一种情况如果此时构造函数  显示的返回一个对象的话 那么this指向  返回的对象  而不是new的对象

所以,如果构造函数返回一个非对象类型数据的话,就不会造成上面的问题

4、call ,apply

它们俩都是强制改变this指向,它们都是接受两个参数,第一个则是this,第二个是参数,

apply要求第二个参数是一个集合  数组或者类数组,call则是单个参数,call一般用于参数确定的情况,apply则用于参数不确定的情况

 

Javascript 中的this指向

原文:http://www.cnblogs.com/zjpzjp/p/7376724.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!