JavaScript的this指向问题? js this指向问题
- JS 构造函数this指向问题
- 如何理解JS中的this指向问题
- js里面的this指向问题,问什么第二个this指向的是window?
- JavaScript 的this指向问题,我这样子定义,有无问题? 求解
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 );
};
}
如何理解JS中的this指向问题
js中this的指向取决于调用的对象
1. 当一个函数不是一个对象的属性时,当作函数来调用,这时函数内的this指向全局对象
2. 当一个函数是一个对象的属性时,作为该对象的一个方法,当一个方法被调用时,this指向该对象
3. 使用new调用的函数称为构造器函数,此时的this指向该构造器函数实例出来的对象
4. apply、call方法可以设定调用者中的this指向谁
js里面的this指向问题,问什么第二个this指向的是window?
展开全部
this的定义:是包含它的函数作为方法被调用时所属的对象。仔细理解一下。
来解释代码:第一个this包含在temp1中,那么调用temp1方法的对象是Obj,因为是temp1.call(Obj);,所以第一个this是Obj。
第二个this包含在temp2中,那么调用temp2的是哪个对象呢?temp2();
直接就这样执行了,默认就是window对象,所以temp2中的this就是window对象
JavaScript 的this指向问题,我这样子定义,有无问题? 求解
这样理解不对
this在没有调用时 没有意义
在函数调用时 this指向函数的调用对象(不是所属对象哦) 这个调用对象未指定时默认就是window对象
var c = {
fn:function(){
return this == c;
}
};
var fn = function(){
return this == window;
};
var b={};
// true
c.fn();
// false
c.fn.call(b);
//true
fn();
//false
fn.call(b)