91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript類的定義方法是什么

發布時間:2021-04-19 16:05:46 來源:億速云 閱讀:192 作者:小新 欄目:web開發

小編給大家分享一下javascript類的定義方法是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

方法有:1、構造函數法,語法“function Cat(){}var cat1=new Cat();}”;2、Object.create()法,語法“var Cat={};var cat1=Object.create(Cat);”。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

在面向對象編程中,類(class)是對象(object)的模板,定義了同一組對象(又稱"實例")共有的屬性和方法。

Javascript語言不支持"類",但是可以用一些變通的方法,模擬出"類"。

一、構造函數法

這是經典方法,也是教科書必教的方法。它用構造函數模擬"類",在其內部用this關鍵字指代實例對象。

  function Cat() {
    this.name = "大毛";
  }

生成實例的時候,使用new關鍵字。

  var cat1 = new Cat();
  alert(cat1.name); // 大毛

類的屬性和方法,還可以定義在構造函數的prototype對象之上。

  Cat.prototype.makeSound = function(){
    alert("喵喵喵");
  }

關于這種方法的詳細介紹,請看我寫的系列文章《Javascript 面向對象編程》,這里就不多說了。它的主要缺點是,比較復雜,用到了this和prototype,編寫和閱讀都很費力。

二、Object.create()法

為了解決"構造函數法"的缺點,更方便地生成對象,Javascript的國際標準ECMAScript第五版(目前通行的是第三版),提出了一個新的方法Object.create()。

用這個方法,"類"就是一個對象,不是函數。

  var Cat = {
    name: "大毛",
    makeSound: function(){ alert("喵喵喵"); }
  };

然后,直接用Object.create()生成實例,不需要用到new。

  var cat1 = Object.create(Cat);
  alert(cat1.name); // 大毛
  cat1.makeSound(); // 喵喵喵

目前,各大瀏覽器的最新版本(包括IE9)都部署了這個方法。如果遇到老式瀏覽器,可以用下面的代碼自行部署。

  if (!Object.create) {
    Object.create = function (o) {
       function F() {}
      F.prototype = o;
      return new F();
    };
  }

這種方法比"構造函數法"簡單,但是不能實現私有屬性和私有方法,實例對象之間也不能共享數據,對"類"的模擬不夠全面。

以上是“javascript類的定義方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浪卡子县| 呼图壁县| 新野县| 太湖县| 余江县| 罗平县| 天峻县| 宜君县| 那坡县| 乌拉特后旗| 博客| 通城县| 鄂托克前旗| 辽中县| 宜良县| 冀州市| 潜江市| 加查县| 温泉县| 镶黄旗| 获嘉县| 铜川市| 凤庆县| 澄江县| 兴文县| 佛山市| 大港区| 镇赉县| 林芝县| 平罗县| 延长县| 肇东市| 永康市| 关岭| 双辽市| 潜山县| 鄂伦春自治旗| 巴林左旗| 阿勒泰市| 拉萨市| 老河口市|