js 中關鍵字 this的用法

來源:互聯網
上載者:User

標籤:

<1>  js中this 的用法? 

(key:函數是由調用的,四種情況標紅可知)

(http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html)

this 關鍵字指的是函數在運行時,自動產生的內部對象,只能在函數內部使用,隨著函數使用場合的變化this 的值也會發生變化,但是總原則是,this指的是調用函數的那個對象   =》範圍:函數內部    對象:調用函數的那個對象

 

this使用的四種情況

1.直接調用函數

var x = 1;

  function test(){

    this.x = 0;

  }

  test();     //直接調用函數,this代表的是全域對象Global

alert(x); //0

                2.作為對象的方法被調用

                function test(){

    alert(this.x);

}

  var o = {};

  o.x = 1;

  o.m = test;

o.m(); // 1   由對象調用,作為對象的方法

   3.作為建構函式調用(建構函式和普通函數的區別:是否使用new 方法產生新對象)

 var x = 2;

  function test(){

    this.x = 1;

  }

  var o = new test();  //this 指代的是建構函式new的新對象

  alert(x); //2

運行結果為2,表明全域變數x的值根本沒變

4.apply ,call 調用(這兩函數的作用是改變函數的調用對象,第一個參數代表改變後的函數調用對象,空時預設全域對象)

var x = 0;

  function test(){

    alert(this.x);

  }

  var o={};

  o.x = 1;

  o.m = test;

  o.m.apply(); //0 this指的是全域對象。

  o.m.apply(o); //1  指代O對象

 拓展:http://www.cnblogs.com/xxcanghai/p/5189353.html

js 中關鍵字 this的用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.