JavaScript的this指向问题? js this指向问题

6741℃ ELEANOR

JavaScript的this指向问题?js 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)

TAG: 问题