您的位置:首页 > Web前端 > JavaScript

js中this的用法

2016-11-08 15:10 232 查看
说到this,对于它的理解就是:this是指向函数执行时的当前对象,倘若没有明确的当前对象,它就是指向window的。

1.setTimeout(functtion(){this},1000)

setTimeout()函数中的this永远指向window;

2.函数中的函数指向window

eg1:对象函数中的函数

var name="john"; 

var obj={

name:"frans",

show:function()

{

     sub_show()

   {

alert(this.name);

    }

}

}

输出结果是:john

eg2:普通函数内的函数

var name="john":

funtcion User()

{

this.name="frans";

var sub_show=function()

{

alert(this.name);

}

}

输出:john;

因为这时this指向window,若想让this指向对象本身,可以子函数外将this赋给一个变量如that;在子函数中用that代替this就可以了。

eg

var name="john"; 

var obj={

name:"frans",

show:function()

{

var that=this;

sub_show()

 {

alert(that.name);

    }

}

}

此时会输出:frans

对象中定义函数;

<script>

var name="john";

var obj=

{
name:"frans",
show:function()
{
//alert(123);
var that=this
sub_show=function()
{
alert(that.name);
}
sub_show();
}

}

obj.show();

</script>

函数对象中定义函数

<script>

var name="john";

function User()

{
this.name="frans";
this.show=function()
{
function sub_show()
{
alert(this.name);
}
sub_show();
}

}

var obj=new User();

obj.show();

</script>

相关链接:

setTimeout那些事之this

javascript中的动态this与动态绑定

js中this的四种调用模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: