JS中this的用法


js中thisd的用法

* this是js中的关键字,它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,一般情况下,this指代的是调用函数的当前对象.细分来说,有以下的用法

* 1:纯粹的函数调用

*这是最通常的用法,属于全局性调用,因此this就代表全局对象Global

*var x = 1;

function test1() {

this.x = 0

console.log(x);

}

test1()//x=0,证明正常的函数调用属于全局性调用

*

*2.作为对象方法调用

*函数作为某个对象的方法调用,则this指这个上级对象

*var x = 1

function test2() {

console.log(this.x)

}

var obj = {}

obj.x = 2

obj.m = test2

obj.m()//x = 2,所以这里this指的是当前调用函数的对象

3.作为构造函数调用

所谓构造函数,就是通过函数构造一个新的对象(Object),这时this指这个新的对象

var x = 23

function test3() {

this.x = 1

}

var obj = new test3()

console.log(obj.x)//x =1

4.apply调用

apply是Function原型的一个方法,用于改变函数的调用对象,它的第一个参数就是调用的对象名,因此this指第一个参数

var x = 23

function test4() {

console.log(this.x)

}

var obj = {}

obj.m = test4

obj.x = 1

obj.m()//x = 1

obj.m.apply()//x = 23

obj.m.apply(obj)//x = 1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,842评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,104评论 1 10
  • Javascript 中的 this,有时候让人迷惑,所以总结了一下关于this指向的问题。 在函数中 this ...
    lxt410725阅读 475评论 0 1
  • 与其他语言相比,函数的this关键字在JavaScript中的表现略有不同,此外,在严格模式和非严格模式之间也会有...
    codingC阅读 587评论 0 0
  • 我基本從來不寫工作的事兒。 因為工作實在沒啥好寫的,不就是工作唄。 然後今天打算稍微寫一點,就寫JS吧。 我一直相...
    LostAbaddon阅读 1,462评论 22 21