首頁 web前端 js教程 如何用JavaScript定義一個類別_基礎知識

如何用JavaScript定義一個類別_基礎知識

May 16, 2016 pm 04:36 PM
javascript 定義 類別

我原本的寫法都是這樣:

function Dog(){
  this.name = 'hachi';
}

Dog.prototype = {
  makeNoise:function(){
    alert('wangwangwang');
  }
};

登入後複製

後來又看到另外一種複雜一點而且看起來好像沒有必要的寫法:

function Dog(){
  var privateVariable = 'secret';

  var fn = function(){
    //...
  }

  fn.prototype = {
    makeNoise:function(){
      alert('wangwangwang');
    }
  }

  return fn;
}

登入後複製

這裡的Dog函數其實是一個 製造類別 的函數,它回傳了真正的Dog類別。
感覺這樣做的好處是更好的實現了封裝。
例如這裡的privateVariable就是一個私有變數:

var d = new Dog;
d.privateVariable //undefined
登入後複製

另外如果在第一個例子的最後加上一句:

Dog.prototype = {
  //e...WTF??
}
登入後複製

這樣Dog就不是Dog了~

後來的理解:
上面這樣新建類別的方法直接重寫了prototype物件。這樣prototype原本內建的屬性就沒有了(arguments, call, apply等)。
下面這種新建類別的方法好像比較好:

var Dog = function(name){
  this.name = name;
  var privateVariable = 'you cannot see me.';
  this.getPrivate = function(){return privateVariable;};
}
登入後複製

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MySQL 複合主鍵的定義與作用 MySQL 複合主鍵的定義與作用 Mar 15, 2024 pm 05:18 PM

MySQL中的複合主鍵是指表中由多個欄位組合而成的主鍵,用來唯一標識每筆記錄。與單一主鍵不同的是,複合主鍵由多個欄位的值組合在一起形成。在建立表格的時候,可以透過指定多個欄位為主鍵來定義複合主鍵。為了示範複合主鍵的定義與作用,我們先建立一個名為users的表,其中包含了id、username和email這三個字段,其中id是自增主鍵,user

什麼是Discuz? Discuz的定義與功能介紹 什麼是Discuz? Discuz的定義與功能介紹 Mar 03, 2024 am 10:33 AM

《探索Discuz:定義、功能及程式碼範例》隨著網路的快速發展,社群論壇已成為人們獲取資訊、交流觀點的重要平台。在眾多的社群論壇系統中,Discuz作為國內較知名的一種開源論壇軟體,備受廣大網站開發者和管理員的青睞。那麼,什麼是Discuz?它又有哪些功能,能為我們的網站提供怎樣的幫助呢?本文將對Discuz進行詳細介紹,並附上具體的程式碼範例,幫助讀者更

PHP介面簡介及其定義方式 PHP介面簡介及其定義方式 Mar 23, 2024 am 09:00 AM

PHP介面簡介及其定義方式PHP是一種廣泛應用於Web開發的開源腳本語言,具有靈活、簡單、強大等特性。在PHP中,介面(interface)是一種定義多個類別之間公共方法的工具,實現了多態性,讓程式碼更加靈活和可重複使用。本文將介紹PHP介面的概念及其定義方式,同時提供具體的程式碼範例展示其用法。 1.PHP介面概念介面在物件導向程式設計中扮演著重要的角色,定義了類別應

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

全角字符的定義及使用 全角字符的定義及使用 Mar 25, 2024 pm 03:33 PM

什麼是全角字元?在電腦編碼系統中,全角字元是一種佔用兩個標準字元位置的字元編碼方式。相對應的,佔用一個標準字元位置的字元編碼方式稱為半角字元。全角字元通常用於中文、日文、韓文等亞洲文字的輸入、顯示和列印。在中文輸入法和文字編輯中,全角字符與半角字符的使用場景是有所區別的。全角字符的使用中文輸入法:在中文輸入法中,通常全角字符用於輸入中文字符,例如漢字、標

如何在JavaScript中取得HTTP狀態碼的簡單方法 如何在JavaScript中取得HTTP狀態碼的簡單方法 Jan 05, 2024 pm 01:37 PM

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務

'PHP物件導向程式設計入門:從概念到實踐” 'PHP物件導向程式設計入門:從概念到實踐” Feb 25, 2024 pm 09:04 PM

什麼是物件導向程式設計?物件導向程式設計(OOP)是一種程式設計範式,它將現實世界中的實體抽象化為類,並使用物件來表示這些實體。類別定義了物件的屬性和行為,而物件則實例化了類別。 OOP的主要優點在於它可以使程式碼更易於理解、維護和重複使用。 OOP的基本概念OOP的主要概念包括類別、物件、屬性和方法。類別是物件的藍圖,它定義了物件的屬性和行為。物件是類別的實例,它具有類別的所有屬性和行為。屬性是物件的特徵,它可以儲存資料。方法是物件的函數,它可以對物件的資料進行操作。 OOP的優點OOP的主要優點包括:可重複使用性:OOP可以讓程式碼更

如何在 iOS 17.4 中自訂 iPhone 上的應用程式圖標 如何在 iOS 17.4 中自訂 iPhone 上的應用程式圖標 Mar 15, 2024 pm 01:43 PM

如何在iOS17.4中自訂iPhone上的應用程式圖示在iOS17.4更新中,自訂iPhone主螢幕已成為一種令人興奮的方式,讓用戶個性化他們的裝置。這個更新帶來了微妙而重要的變化,使用戶更容易了解如何瀏覽這些修改。透過自訂應用程式圖標,使用者可以將個性融入手機介面。以下影片由KaylaLeRoux展示如何在iPhone上進行這項操作,讓整個過程變得更加簡單。為什麼要定制?透過iOS17.4更新,Apple簡化了自訂手機主螢幕的流程,使用戶能夠輕鬆地以符合自己風格和喜好的方式進行個性化設

See all articles