资讯专栏INFORMATION COLUMN

this关键字

王军 / 912人阅读

摘要:是什么是一个特别的关键字可以用在构造函数之中,表示实例对象总是返回一个对象简单说,就是属性或方法当前所在的对象姓名姓名表示属性所在的那个对象。

this 是什么

this是一个特别的关键字 this可以用在构造函数之中,表示实例对象 this总是返回一个对象
简单说,this就是属性或方法“当前”所在的对象

var person = {
  name: "Rookie",
  method: function () {
    return "姓名:"+ this.name;
  }
};

person.method()   //"姓名:Rookie"

this.name表示name属性所在的那个对象。由于this.name是在method方法中调用,而method方法所在的当前对象是person,因此this指向person,this.name就是person.name。

因为对象的属性可以赋给另一个对象,所以属性所在的当前对象是可变的 ----> this的指向是可变的

var A = {
  name: "Rookie",
  method: function () {
    return "姓名:"+ this.name;
  }
};

var B = {
  name: "BDD"
};

B.method= A.method;
B.method()   // "姓名:BDD"
使用场景 (1)全局环境

全局环境使用this,它指的就是顶层对象window

this === window // true

function f() {
  console.log(this === window);
}
f() // true

不管是不是在函数内部,只要是在全局环境下运行,this就是指顶层对象window

(2)构造函数

构造函数中的this,指的是实例对象。

var Obj = function (e) {
  this.e = e;
};
var n=new Obj("HOLA");
console.log(n.e);

this指向实例对象,所以在构造函数内部定义this.e,就相当于定义实例对象有一个e属性。

(3)对象的方法

如果对象的方法里面包含this,this的指向就是方法运行时所在的对象。该方法赋值给另一个对象,就会改变this的指向。

var obj ={
  foo: function () {
    console.log(this);
  }
};

obj.foo() // obj

obj.foo方法执行时,它内部的this指向obj

var a = {
  p: "Hello",
  b: {
    m: function() {
      console.log(this.p);
    }
  }
};

a.b.m() // undefined

如果this所在的方法不在对象的第一层,这时this只是指向当前一层的对象,而不会继承更上面的层。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108488.html

相关文章

  • 详解js和jquery里的this键字

    摘要:出于这个原因,该函数返回的,所以在这里指的是,所以返回的是第一个说明关键字通常在对象的构造函数中使用,用来引用对象。重写无法重写,因为它是一个关键字。结论,表示当前的上下文对象是一个对象,可以调用对象所拥有的属性,方法。 在《javaScript语言精粹》这本书中,把 this 出现的场景分为四类,简单的说就是: 有对象就指向调用对象 没调用对象就指向全局对象 用new构造就指向新对...

    LoftySoul 评论0 收藏0
  • this键字

    摘要:关键字关键字是什么关键字是中最复杂的机制之一。它是一个很特别的关键字,被定义在所有函数的作用域中。可以把这条规则看作是无法应用其他规则时的默认规则。取决于函数调用的位置注意事项避免多层避免数组方法中的避免回调函数中的 this关键字 this关键字是什么 this关键字是JavaScript中最复杂的机制之一。它是一个很特别的关键字,被定义在所有函数的作用域中。但是即使是非常有经验的J...

    oliverhuang 评论0 收藏0
  • this键字

    摘要:关键字关键字是什么关键字是中最复杂的机制之一。它是一个很特别的关键字,被定义在所有函数的作用域中。可以把这条规则看作是无法应用其他规则时的默认规则。取决于函数调用的位置注意事项避免多层避免数组方法中的避免回调函数中的 this关键字 this关键字是什么 this关键字是JavaScript中最复杂的机制之一。它是一个很特别的关键字,被定义在所有函数的作用域中。但是即使是非常有经验的J...

    cucumber 评论0 收藏0
  • 如何理解JavaScript的this键字

    摘要:原文链接参考深入理解原型和闭包完结王福朋博客园中的作用域详解博客园 前言 王福朋老师的 JavaScript原型和闭包系列 文章看了不下三遍了,最为一个初学者,每次看的时候都会有一种 大彻大悟 的感觉,而看完之后却总是一脸懵逼。原型与闭包 可以说是 JavaScirpt 中理解起来最难的部分了,当然,我也只是了解到了一些皮毛,对于 JavaScript OOP 更是缺乏经验。这里我想总...

    Yangder 评论0 收藏0
  • JS 中 this 键字详解

    摘要:首先,必须搞清楚在里面,函数的几种调用方式普通函数调用作为方法来调用作为构造函数来调用使用方法来调用方法箭头函数但是不管函数是按哪种方法来调用的,请记住一点谁调用这个函数或方法关键字就指向谁。 本文主要解释在JS里面this关键字的指向问题(在浏览器环境下)。 首先,必须搞清楚在JS里面,函数的几种调用方式: 普通函数调用 作为方法来调用 作为构造函数来调用 使用apply/call...

    zoomdong 评论0 收藏0
  • 学习js中的'this'键字

      在JavaScript中‘this’关键字是一个非常重要的概念,我们虽然知道它重要,但它也十分的晦涩难懂,也给我们学习造成不小的困扰。  什么是'this'关键字  'this'关键字是为每个执行上下文(每个函数)创建的一个特殊变量;所以一般来说,在使用'this'关键字的函数中,'this'永远是取其所有者的值。总结一句话是该函...

    3403771864 评论0 收藏0

发表评论

0条评论

王军

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<