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

Javascript中的this

时间:2015-03-15 18:04:55      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

Javascript中,this是一个关键字,不是变量,也不是属性名。Javascript的语法不允许给this赋值。

注意:this没有作用域的限制,嵌套的函数不会从调用它的函数中继承this(函数内部的this不继承外部this的作用域)。如果嵌套函数作为方法调用(o.f()),其this值指向调用它的对象;如果嵌套函数作为函数调用,其this值为全局对象(非严格模式)或undefined(严格模式)。

很多人误以为调用嵌套函数时this会指向调用外层函数的上下文。如果你想访问外部函数的this值,需要将this的值保存在一个变量中(如self),这个变量和内部函数都在同一个作用域内。比如:

var o={
  m: function(){
       var self= this;
       console.log(this === o) ;   // true,  this就是这个对象o
       f();  
      
       function(){
            console.log(this === o);  // false, this的值是全局对象or undefined
            console.log(this === o);   // true, self指外部函数this的值
    }
 }  
};
o.m();

 

Javascript中的this

标签:

原文地址:http://www.cnblogs.com/chenqiushi/p/4339979.html

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