码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript 中的this指向

时间:2017-08-17 10:51:22      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:function   func   构造函数   对象   bsp   调用   执行   javascrip   this   

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指向

标签:function   func   构造函数   对象   bsp   调用   执行   javascrip   this   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!