柠檬墨绿色 发表于 2016/10/15 16:52

一段程序让你看懂JS中的this

  var name = "Bob";

  var nameObj ={

  name : "Tom",

  showName : function(){

  console.log(this.name);

  },

  waitShowName : function(){

  setTimeout(this.showName, 1000);

  }

  };

  nameObj.waitShowName();//Bob

  nameObj.showName();//Tom

  setTimeout函数的默认定义域是全局的,this代指调用他的那个对象,showName()函数是个调用对象为nameObj,故输出了Tom。若要让waitShowName输出Tom,你只需这样做:

  var name = "Bob";

  var nameObj ={

  name : "Tom",

  showName : function(){

  console.log(this.name);

  },

  waitShowName : function(){

  var that = this; //将this值保存。有些地方也将that写为self。

  setTimeout(function(){

  console.log(that.name);

  }, 1000);

  }

  };

  nameObj.waitShowName();

  <!doctype html>

  <html>

  <head>

  <meta charset="utf-8">

  <meta name="description" content="">

  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>左侧固定,右侧自适应</title>

  </head>

  <body>

  <h1>左侧固定,右侧自适应布局</h1>

  <div class="left-fixed_right-auto">

  <div class="left"http://www.9ask.cn/sjz/>

  左侧定宽左侧定宽左侧定宽左侧定宽左侧定宽左侧定宽

  </div>

  <div class="right">

  <div class="right-content">

  右侧自适应,这是会自动换行的换行的换行的发动发动发扥扥这是会自动换行的换行的换行的发动发动发扥扥这是会自动换行的换行的换行的发动发动发扥扥这是会自动换行的换行的换行的发动发动发扥扥

  </div>

  </div>

  </div>

  </body>

  </html>

ubuntu 发表于 2016/10/15 22:10

聪明的楼主
页: [1]
查看完整版本: 一段程序让你看懂JS中的this