<body>
<input id="btn1" type="button" value="按钮" />
<!--
下面这行,先弹出 [object HTMLInputElement],后弹出 [object Window].
-->
<input id="btn2" type="button" onclick="alert(this),fn1();" value="按钮2" />
<script type="text/javascript">
var oBtn = document.getElementById('btn1');
function fn1() {
alert(this);
}
fn1(); //alert弹出 [object Window], 此时fn1()函数中的alert(this)中的this指Window;
window.fn1();
//alert弹出 [object Window],说明和上一句话等价,此时fn1()函数中的alert(this)中的this指Window;
oBtn.onclick = fn1;
// alert弹出 [object HTMLInputElement],此时fn1()函数中的alert(this)中的this指代oBtn;
/*
下面这样调用时,第一行alert(this),this指调用者oBtn;
第二行fn1(),弹出[object Window],可以看出fn1()里的this指Window.
*/
oBtn.onclick = function (){
alert(this); // alert弹出 [object HTMLInputElement]
fn1(); // alert弹出 [object Window], 可以看出fn1()里的this => window
};
function fn2(obj) {
alert(obj);
}
fn2(this); //alert弹出 [object Window]...所以()的this 指的是 Window
oBtn.onclick = function (){
fn2(this); //alert弹出 [object HTMLInputElement]...所以()的this 指的是 oBtn
};
</script>
</body>
javascript之this
最新推荐文章于 2024-10-18 17:51:23 发布