急,请问javascript的this问题?
<script language="javascript">
function s(){
alert(this==s);
}
s();
</script>书上说this的当前对象就是函数名s了,为什么this==s返回的是false呢?请指教
<script language="javascript">
function s(){
alert(this==s);
}
s();
</script>书上说this的当前对象就是函数名s了,为什么this==s返回的是false呢?请指教
这里的this指的是window
相当于
window.alert(this==s)
此时调用this的是window
function a()
{
this.v = 1;
function b()
{
this.v = 2;
}
}
想在b函数中更改a中的v值时,由于b函数的this指针已经指向了b函数,所以直接调用this.v是不行的。
这时候可以使用
function a()
{
this.v = 1;
_parent = this;function b()
{
_parent.v = 2;
}
}
这样就能更改了
4楼的见解不对
function s(){
alert(this==window);
};
var b={};
s();//返回true
s.apply(b);//返回falsealert(this==window)中this是形参指向函数中的this,跟window.alert没有关系
s()
相当 window.s()window是可省略的所以this=window你记住alert 是s函数执行那个时候判断this
这时候s是在window对象里运行这是关键
function s(){
alert(this==window);
};
function t(){
alert(this==b)
}s();//返回true
t.apply(b);//返回true
晕~~不要来误导别人...this,始终指向调用它的对象 function s(){
alert(this);
alert(this==s);
}
s();
s.call(s);