代碼如下:<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title></head><body>
<div id="div0"></div></body><script>
window.id = 'window'; document.getElementById('div0').onclick = function(){
alert(this.id); var callback = function(){
alert(this.id)
}
callback();
};</script></html>第一個輸出"div0"可以理解很正常,為何第二個輸出的是"window",callback是內部的函數他應該和外部的this都隱式調用指向div0,為何外部指向div0,內部指向window?于是嘗試命令行運行:window.name = "window"var text = function(){
name = "text";
alert(this.name); var callback = function(){
alert(this.name)
}
callback()
}
text()結果輸出兩次"text"兩者矛盾了吧,已暈望大神指點
關于this在瀏覽器中的指向
largeQ
2018-09-11 09:18:50
