js构造函数this指向(js中this的指向有几种情况)
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指代第一个参数