• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. JavaScript實例講解

        時間:2024-09-25 20:36:11 JavaScript 我要投稿
        • 相關(guān)推薦

        JavaScript實例講解

          這帶來的好處是內(nèi)部函數(shù)可以訪問定義它們的外部函數(shù)的參數(shù)和變量。

          首先,我們來構(gòu)造一個簡單的對象。

          復(fù)制代碼 代碼如下:

          var testObj = {

          value: 10,

          add: function(inc){

          this.value += (typeof inc === "number") ? inc : 1;

          }

          };

          testObj.add();

          testObj.value; // 11

          testObj.add(2);

          testObj.value; // 13

          這樣寫就有一個問題,value值不能保證不會被非法修改,可以按如下的方法進(jìn)行修改。

          復(fù)制代碼 代碼如下:

          var testObj = (function(){

          var value = 10;

          return {

          add: function(inc){

          value += (typeof inc === "number") ? inc : 1;

          },

          getValue: function(){

          return value;

          }

          };

          })();

          testObj.add();

          testObj.getValue(); // 11

          testObj.add(2);

          testObj.getValue(); // 13

          我們可以通用調(diào)用一個函數(shù)的形式去初始化testObj,該函數(shù)會返回一個對象字面量,函數(shù)里定義了一個value變量,該變量對add和getValue方法總是可用的,但函數(shù)的作用域使得它對其他的程序來說是不可見的。同時,我們還可以得出一個結(jié)論,內(nèi)部函數(shù)擁有比它的外部函數(shù)更長的生命周期。

          我們再繼續(xù)看一個構(gòu)造函數(shù)調(diào)用的例子。

          復(fù)制代碼 代碼如下:

          var MyObj = function(str){

          this.status = str;

          };

          MyObj.prototype.getStatus = function(){

          return this.status;

          };

          var obj = new MyObj("javascript");

          obj.getStatus(); // "javascript"

          這樣寫并沒有錯,但是會有一點“多此一舉”,為什么要用一個getStatus方法去訪問一個本可以直接訪問到的屬性呢?如果status是私有屬性,那當(dāng)然才有意義。

          復(fù)制代碼 代碼如下:

          var obj = function(status){

          return {

          getStatus: function(){

          return status;

          }

          };

          };

          var myObj = obj("javascript");

          myObj.getStatus(); // "javascript"

          這里當(dāng)我們調(diào)用obj的時候,它返回包含getStatus方法的一個新對象,該對象的一個引用保存在myObj中,即使obj已經(jīng)返回了,但getStatus方法仍然享有訪問obj對象的status屬性的特權(quán)。getStatus方法并不是訪問該參數(shù)的一個副本,它訪問的就是該參數(shù)本身。這是可能的,因為該函數(shù)可以訪問它被創(chuàng)建時所處的上下文環(huán)境,這被稱為閉包。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【JavaScript實例講解】相關(guān)文章:

        JavaScript的課堂講解09-03

        JavaScript fontcolor方法入門實例07-07

        JavaScript中push(),join() 函數(shù)實例詳解09-05

        javascript閉包的定義及應(yīng)用實例分析08-25

        實例講解托福閱讀推斷題技巧06-20

        對javascript的理解08-08

        常用的JavaScript模式09-22

        Javascript的this用法簡述08-15

        JavaScript學(xué)習(xí)筆記08-24

        JavaScript 基礎(chǔ)教學(xué)09-29

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲成E人在线免费观看 | 亚洲无线码一区二区三区 | 亚洲熟女精品久久免费视频 | 亚洲少妇另类视频 | 亚洲sss无整片在线播放 | 亚洲中文字幕一片 |

            JavaScript實例講解

              這帶來的好處是內(nèi)部函數(shù)可以訪問定義它們的外部函數(shù)的參數(shù)和變量。

              首先,我們來構(gòu)造一個簡單的對象。

              復(fù)制代碼 代碼如下:

              var testObj = {

              value: 10,

              add: function(inc){

              this.value += (typeof inc === "number") ? inc : 1;

              }

              };

              testObj.add();

              testObj.value; // 11

              testObj.add(2);

              testObj.value; // 13

              這樣寫就有一個問題,value值不能保證不會被非法修改,可以按如下的方法進(jìn)行修改。

              復(fù)制代碼 代碼如下:

              var testObj = (function(){

              var value = 10;

              return {

              add: function(inc){

              value += (typeof inc === "number") ? inc : 1;

              },

              getValue: function(){

              return value;

              }

              };

              })();

              testObj.add();

              testObj.getValue(); // 11

              testObj.add(2);

              testObj.getValue(); // 13

              我們可以通用調(diào)用一個函數(shù)的形式去初始化testObj,該函數(shù)會返回一個對象字面量,函數(shù)里定義了一個value變量,該變量對add和getValue方法總是可用的,但函數(shù)的作用域使得它對其他的程序來說是不可見的。同時,我們還可以得出一個結(jié)論,內(nèi)部函數(shù)擁有比它的外部函數(shù)更長的生命周期。

              我們再繼續(xù)看一個構(gòu)造函數(shù)調(diào)用的例子。

              復(fù)制代碼 代碼如下:

              var MyObj = function(str){

              this.status = str;

              };

              MyObj.prototype.getStatus = function(){

              return this.status;

              };

              var obj = new MyObj("javascript");

              obj.getStatus(); // "javascript"

              這樣寫并沒有錯,但是會有一點“多此一舉”,為什么要用一個getStatus方法去訪問一個本可以直接訪問到的屬性呢?如果status是私有屬性,那當(dāng)然才有意義。

              復(fù)制代碼 代碼如下:

              var obj = function(status){

              return {

              getStatus: function(){

              return status;

              }

              };

              };

              var myObj = obj("javascript");

              myObj.getStatus(); // "javascript"

              這里當(dāng)我們調(diào)用obj的時候,它返回包含getStatus方法的一個新對象,該對象的一個引用保存在myObj中,即使obj已經(jīng)返回了,但getStatus方法仍然享有訪問obj對象的status屬性的特權(quán)。getStatus方法并不是訪問該參數(shù)的一個副本,它訪問的就是該參數(shù)本身。這是可能的,因為該函數(shù)可以訪問它被創(chuàng)建時所處的上下文環(huán)境,這被稱為閉包。