日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > web前端 > jscript > javascript變量作用域在不同瀏覽器的處理

javascript變量作用域在不同瀏覽器的處理

來源:程序員人生   發(fā)布時間:2014-02-13 15:59:05 閱讀次數(shù):3497次

1.關(guān)于prototype:這里prototype是javascript的一個特性,不是那個有名的prototype框架:

<script type="text/javascript">
var string="hello world";
try{
  alert(string.phone());
}catch(e){alert(e);}
String.prototype.phone=function()
{
  return "159-10957151";
}
 
alert(string.phone());
</script>

2.關(guān)于變量作用域,和IE,firefox對js的不同處理,這里有幾個例子,有幾個是原來從別處看到的記的筆記,有的是我自己挖掘出來的.

2.1

<script type="text/javascript">
  var deep_thought = {
   the_answer: 42,
   ask_question: function () {
    return this.the_answer;
   }
  };
 
  var the_meaning = deep_thought.ask_question();
  alert(the_meaning);
</script>

2.2

<script type="text/javascript">
  function test_this() {
   return this;
  }
  var i_wonder_what_this_is = test_this();
  alert(i_wonder_what_this_is);
  // result: [object window];
</script>

2.3:

<script type="text/javascript">
  function click_handler() {
   alert(this); // 彈出 window 對象
  }
</script>
 ...
<button id='thebutton' onclick='click_handler()'>Click me!</button>

2.4

<script type="text/javascript">
  function click_handler(obj) {
   alert(obj);
   //result:[object HTMLButtonElement]
  }
</script>
 ...
<button id='thebutton' onclick='click_handler(this)'>Click me!</button>

2.5

<button id='thebutton' onclick='click_handler(this)'>Click me!</button>
<script type="text/javascript">
 function BigComputer(answer) {
  this.the_answer = answer;
  this.ask_question = function () {
   alert(this.the_answer);
  }
 }
 
 function addhandler() {
  var deep_thought = new BigComputer(42),
   the_button = document.getElementById('thebutton');
   the_button.onclick = deep_thought.ask_question;
 }
 window.onload = addhandler;
 //result [undefined]
</script>
 ...

2.6

<button id='thebutton' onclick='click_handler(this)'>Click me!</button>
<script type="text/javascript">
 function BigComputer(answer) {
  var self=this;
  self.the_answer = answer;
  self.ask_question = function () {
   alert(self.the_answer);
  }
 }
 
 function addhandler() {
  var deep_thought = new BigComputer(42),
   the_button = document.getElementById('thebutton');
   the_button.onclick = deep_thought.ask_question;
 }
 window.onload = addhandler;
 //result [42]
</script>
 ...

2.7

<button id='thebutton' onclick='click_handler(this)'>Click me!</button>
<script type="text/javascript">
function btn_click(){
  alert(this);
}
 
 function addhandler() {
   the_button = document.getElementById('thebutton');
   the_button.onclick = btn_click;
 }
 
 window.onload = addhandler;
 
 //result [undefined]
</script>
 ...

2.8

<button id='thebutton' onclick='click_handler(this)'>Click me!</button>
<script type="text/javascript">
function real_func()
{
  alert(this);
}
function btn_click(){
  setTimeout(real_func,100);
}
 
 function addhandler() {
   the_button = document.getElementById('thebutton');
   the_button.onclick = btn_click;
 }
 
 window.onload = addhandler;
 
 //result [undefined]
</script>
 ...

2.9

<button id='thebutton' onclick='click_handler(this)'>Click me!</button>
<script type="text/javascript">
 Function.prototype.bind = function(obj) {
  var method = this,
   temp = function() {
    return method.apply(obj, arguments);
   };
 
  return temp;
 }
var  real_func=function()
{
  alert(this);
}
function btn_click(){
  setTimeout( real_func.bind(this),100);
}
 function addhandler() {
   the_button = document.getElementById('thebutton');
   the_button.onclick = btn_click;
 }
 window.onload = addhandler;
 //result [undefined]
</script>
 ...

2.10

<script>
  //** variables need to be defined
  alert(document);          // [object HTMLdocument]
  alert(window.document);   // [object HTMLdocument]
 
  alert(window.face);      //pretty
  var face="pretty";
  alert(face);             //pretty
  alert(window.face);      //pretty
  alert(window.sock);      //undefined
  alert(sock);              // ERROR: sock not defined
</script>

2.11

<script type="text/javascript">
function method()
{
  var window={};
  alert(window.location);
}
  alert(window.location);
  method();
  alert(window.location);
</script>

2.12

<script type="text/javascript">
   var window={};//ERROR:非法賦值!
   // this works in IE,but throw an Exception in firefox
   alert(window.location);
</script>

2.13

<script type="text/javascript">
  /** 這是一段很讓人惱火的代碼
  可以禁用alert
  */
  window.alert("hello world");
  window.alert=function(str){
      document.write(str);
  };
  alert("hello world");
  window.alert("hello world");
</script>

2.14:

注意這三個html文件的結(jié)果有什么不同.
a.html:
<script type="text/javascript">
alert(sock);
function sock()
{
  alert("function sock executed!");
}
alert(sock);
</script>
b.html:
<script type="text/javascript">
alert(sock);
var sock=function()
{
  alert("function sock executed!");
}
alert(sock);
</script>
c.html:
<script type="text/javascript">
// 這里并不彈出"undefined"
// 有點偏心啊!
alert(sock);
</script>

2.15

看看IE,firefox下分別運行有何不同:

<script type="text/javascript">
Object.prototype.hello=function(){
  alert("hello");
}
window.hello();
</script>

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产一区二 | 亚洲综合久久久 | 欧美激情一区二区三区 | 精品在线免费观看 | 9999精品视频 | 精品电影一区二区三区 | 9999精品视频| 动漫卡通精品一区二区三区介绍 | 久久国产v | 男女国产视频 | 麻豆精品国产91久久久久久 | 成人在线观看免费 | 99re在线视频观看 | 欧美日本韩国在线 | 久久极品| 亚洲国产成人av | 图片区自拍偷拍 | 国产精品一区二区三区在线 | 日本综合久久 | 国产亚洲综合性久久久影院 | 99久久综合国产精品二区国产 | 久久久精品影视 | 天天插天天 | 免费高清日本 | 9色av| 久久久久国产精品一区二区 | 日韩在线| 国产精品福利一区二区 | av资源在线看| www.中文字幕| 午夜精品久久久久99蜜 | 欧美日韩一区二区三区不卡 | 国产一区欧美 | 亚洲国产精品尤物yw在线观看 | 黄色毛片免费看 | 午夜精品久久久久久久96蜜桃 | 久久91久久 | 亚洲午夜免费视频 | 国产1区| 天堂在线看 | 亚洲视频在线一区 |