美文网首页
JS this指向

JS this指向

作者: LongFor_ | 来源:发表于2019-06-23 20:07 被阅读0次

首先,请牢记以下三点
1. this指向的,只可能是对象!
2.this指向谁,不取决于this写在哪!而是取决于函数在哪里进行调用。
3.this指向的对象,称之为函数的上下文context,也叫函数的调用者。
看一下具体的情况

1.通过函数名直接调用:this指向window

function funA(){
    console.log(this);
 }
 // 通过函数名直接调用:this指向window
funA(); // this--->window
通过函数名直接调用

2.函数作为某个数组中的一个元素,通过数组下标进行调用:this指向这个数组,以上面的函数为例。

function funA(){
    console.log(this);
 }
var arr = [funA,1,2,3];
arr[0]();  // this--->arr
通过数组下标进行调用

3.通过对象.函数名调用的:this指向这个对象

function funA() {
   console.log(this)
}
var obj = {
   name: "obj",
   funA: funA
};
obj.funA(); // this--->obj
通过对象进行调用

4.通过DOM事件进行的调用,this指向页面中调用它的元素

假设页面中有一个id为div的元素

var div = document.getElementById('div')
div.onclick = function () {
    console.log(this)
}
事件进行的调用

5.函数作为window内置函数的回调函数调用:this指向window( 如setInterval setTimeout 等)

function funA() {
    console.log(this)
}
setTimeout(funA,1000);// this--->window
回调函数调用

6.函数作为构造函数,用new关键字调用时:this指向新new出的函数。

function funA() {
    this.name = 'funA'
    console.log(this.name)
 }
var obj = {
    name:'name',
    fun:new funA(),
}
console.log(obj)
new关键字

上面是本人对于this指向的一些理解,如有错误或不足,望指出。

相关文章

  • JS this指向

    一、js中的四种调用模式s 构造函数调用:new Foo(); 对象方法调用:o.method(); 函数直接调用...

  • js this指向

    this指向调用该函数的对象 在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不...

  • JS this指向

    首先,请牢记以下三点1. this指向的,只可能是对象!2.this指向谁,不取决于this写在哪!而是取决于函数...

  • JS this指向

  • JS进阶篇-this指向问题

    JS中this的指向问题不同于其他语言,JS中的this不是指向定义它的位置,而是在哪里调用它就指向哪里。 JS中...

  • java 有关this,apply使用

    js的call js的this指向改变 使用 java 的 apply

  • js:this指向问题

    var 作用域 先来看个简单的例子: 直觉地,内部函数可以访问外部函数的变量,外部不能访问内部函数的变量。上面的例...

  • JS中this指向

    一、全局作用域中的thises5与es6中严格模式与非严格模式全局函数的this都指向window 二、全局作用域...

  • JS中this指向

    函数有4种调用方式,对应就有4种绑定规则:默认绑定、隐式绑定、硬绑定和构造函数绑定。 1、默认绑定 当作为普通函数...

  • JS—-this指向(一)

    没有箭头函数之前,我们说this就是函数运行时所在的环境对象,但是在箭头函数中this就是定义时所在的对象,先说大...

网友评论

      本文标题:JS this指向

      本文链接:https://www.haomeiwen.com/subject/ivswqctx.html