this 指向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了this 指向相关的知识,希望对你有一定的参考价值。

js中的this灵活多变,极易出错。

可以按照函数的4种调用方式分别讨论

 

1、作为普通函数来调用时,

this的指向->window

准确的说,this为null,但被解释成window

在ECMASCRIPT5标准中,如果this为null,则解释成undefined

技术分享

 函数内带有this操作,不能直接调用,应该new一个对象,否则会污染全局

 

2、作为对象的方法来调用

作为方法调用时,this指向其调用那一瞬间的调用者,即调用对象

而不论函数声明时,this属于谁 。

技术分享

 

3、作为构造函数调用时

js中没有类的概念,创建对象是用构造函数来完成,或者直接用json格式{}来写对象

技术分享

0、方法new的瞬间,得到一个空对象{}

1、方法的this指向该空对象

2、运行方法

    {}.name=name;

    {}.age=age;

    var dog = new dog(‘huzi‘,2)// 会得到 一个新对象,方法内的this,指向该新对象

 

 

4、函数通过 call,apply调用

语法格式:函数.call(对象,参数1,参数2、、、参数N)

语法格式:函数.apply[对象,参数1,参数2、、、参数N]

 

以上是关于this 指向的主要内容,如果未能解决你的问题,请参考以下文章

setTimeout中this指向的问题

看一遍就能掌握 js 中的 this 指向

this 的指向

this 的指向

什么是this指向?怎么改变this指向

面向对象this指向问题