js构造函数this指向(js中this的指向有几种情况)

http://www.itjxue.com  2023-01-24 14:26  来源:未知  点击次数: 

js函数是1个构造函数this指针指向1个新的对象吗?

在箭头函数出现之前,每一个新函数根据它是被如何调用的来定义这个函数的this值:如果是该函数是一个构造函数,this指针指向一个新的对象在严格模式下的函数调用下,this指向undefined如果是该函数是一个对象的方法,this指针指向这个对象如果该函数通过 call、apply 等方法调用,则它的 this 指向该方法传入的第一个参数值但是箭头函数在调用的时候并没有 this 绑定过程,它的 this 指向在他被创建的那一刻就决定了。例如你在全局环境下定义一个箭头函数的时候,它的 this 就会指向 window 对象:img src="" data-caption="" data-size="normal" data-rawwidth="616" data-rawheight="60" class="origin_image zh-lightbox-thumb" width="616" data-original=""/

JS 构造函数this指向问题

JS?函数被调用时?this?是指向?global(window)的。所以,你定时器里面的?this?和外面的?this?并不一样。解决方法:

function?Ren(?x?)?{

????var?me?=?this;

????this.x?=?x;

????this.move?=?function()?{

????????//?...

????????var?timer?=?setInterval(?function()?{

????????????if(?me.x??(?mousePos.x?-?100?)?)?{

????????????????clearInterval(?timer?);

????????????????return;

????????????}

????????????me.x?+=?10;

????????},?60?);????

????};

}

javascript中的this到底指什么?

JavaScript:this是什么?

定义:this是包含它的函数作为方法被调用时所属的对象。

说明:这句话有点咬嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它!

1、包含它的函数。2、作为方法被调用时。3、所属的对象。

看例子:

function to_green(){

this.style.color="green";

}

to_green();

上面函数中的this指的是谁?

分析:包含this的函数是,to_green

该函数作为方法被调用了

该函数所属的对象是。。?我们知道默认情况下,都是window对象。

OK,this就是指的window对象了,to_green中执行语句也就变为,window.style.color="green"

这让window很上火,因为它并没有style这么个属性,所以该语句也就没什么作用。

我们在改一下。

window.load=function(){

var example=document.getElementById("example");

example.onclick=to_green;

}

这时this又是什么呢?

我们知道通过赋值操作,example对象的onclick得到to_green的方法,那么包含this的函数就是onclick喽,

那么this就是example引用的html对象喽。

this的环境可以随着函数被赋值给不同的对象而改变!

下面是完整的例子:

script type="text/javascript"

function to_green(){

this.style.color="green";

}

function init_page(){

var example=document.getElementById("example");

example.onclick=to_green;

}

window.onload=init_page;

/script

a href="#" id="example"点击变绿/a

js中this代表什么意思?

第一个this.name指的是变量name(对应var name="The Window"这个),

第二个this.name指的是object这个map里面的name,this指的是object这个map对象。

this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,下面分四种情况:

情况一:纯粹的函数调用 :这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。

情况二:作为对象方法的调用 :函数还可以作为某个对象的方法调用,这时this就指这个上级对象。

情况三 作为构造函数调用 :所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。

情况四 apply调用 :apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。

javascript中构造器调用模式中的this

1:

构造函数的运作可以这样理解:

如您的这个代码

var Quo = function(){ this.a= 0; };

var MyQuo = new.Quo();

其中的new 运算符,先产生了一个空对象{},然后生成一个this指针,将this指针指向这个空对象;运行构造函数时,就相当于“{}.a=0”一样的为这个对象动态添加属性。最后将这个生成好的对象付给MyQuo.

2:this的意义,就是动态的指向当前代码所属的对象。

function(){ return this.a; };

如果不用new运算符,单单的运行这个函数Quo,就会为window添加一个属性a=0,因为这段代码运行的时候,没有所属对象,默认就归给window了。如果用了new,this就指代生成的对象了。

静态的this,很难说指向了谁,这需要看代码的运行上下文。

3:prototype的本质是一个对象, 是属于构造函数的属性。对它的理解,就是用此构造函数生成的对象共享prototype对象,如果有相同的属性,则覆盖。

var Quo = function(){ this.a= 0; };

Quo.prototype.get_status = function(){ return this.a; };

var MyQuo = new.Quo();

最后的MyQuo有两个属性,MyQuo.a属性,是由构造函数动态添加的。MyQuo.get_status属性,是从构造函数的原型prototype 继承得到的

原型中的this,自然动态的指向由构造函数所生成的对象了。

js中的this如何使用

在一般函数方法中使用 this 指代全局对象

2.作为对象方法调用,this 指代上级对象

3.作为构造函数调用,this 指代new 出的对象

4.apply 调用 ,apply方法作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数

(责任编辑:IT教学网)

更多

推荐word文章