真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

javascript如何定義類

這篇文章將為大家詳細(xì)講解有關(guān)javascript如何定義類,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、瑞金網(wǎng)站維護(hù)、網(wǎng)站推廣。

JavaScript定義類的三個(gè)方法:1、利用構(gòu)造函數(shù)定義類,語(yǔ)法為“function name(){this.name=value;}”;2、利用“Object.create()”方法定義類;3、利用“createNew()”方法定義類。

本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。

javascript定義類的三個(gè)方法是什么

在面向?qū)ο缶幊讨?,?class)是對(duì)象(object)的模板,定義了同一組對(duì)象(又稱"實(shí)例")共有的屬性和方法。

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

一、構(gòu)造函數(shù)法

這是經(jīng)典方法,也是教科書(shū)必教方法。它用構(gòu)造函數(shù)模擬"類",在其內(nèi)部用this關(guān)鍵字指代實(shí)例對(duì)象。

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

生成實(shí)例的時(shí)候,使用new關(guān)鍵字。

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

類的屬性和方法,還可以定義在構(gòu)造函數(shù)的prototype對(duì)象之上。

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

關(guān)于這種方法的詳細(xì)介紹,請(qǐng)看系列文章《JavaScript面向?qū)ο缶幊獭罚@里就不多說(shuō)了。它的主要缺點(diǎn)是,必教復(fù)雜,用到this和prototype,編寫(xiě)和閱讀都很費(fèi)力。

二、Object.create()法

為了解決"構(gòu)造函數(shù)法"的缺點(diǎn),更方便地生成對(duì)象,JavaScript的國(guó)際標(biāo)準(zhǔn)ECMAScript第五版(目前通行的是第三版),提出了一個(gè)新的方法Object.create()。

用這個(gè)方法,"類"就是一個(gè)對(duì)象,不是函數(shù)。

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

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

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

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

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

這種方法比"構(gòu)造函數(shù)法"簡(jiǎn)單,但是不能實(shí)現(xiàn)私有屬性和私有方法,實(shí)例對(duì)象之間也不能共享數(shù)據(jù),對(duì)"類"的模擬不夠全面。

三、極簡(jiǎn)主義法

荷蘭程序員Gabor de Mooij 提出了一種比Object.create()更好的新方法,它稱這種方法為"極簡(jiǎn)主義法"(minimalist approach)。這也是我推薦的方法。

3.1 封裝

這種方法不適用this和prototype,代碼部署起來(lái)非常簡(jiǎn)單,這大概也是它被叫做"極簡(jiǎn)主義法"的原因。

首先,它也是用一個(gè)對(duì)象模擬"類"。在這個(gè)類里面,定義一個(gè)構(gòu)造函數(shù)caeateNew(),用來(lái)生成實(shí)例。

var Cat = {
  createNew: function(){
    //some code here
  }
};

然后,在carateNew()里面,定義一個(gè)實(shí)例對(duì)象,把這個(gè)實(shí)例對(duì)象作為返回值。

var Cat = {
  createNew: function(){
    var cat = {};
    cat.name = "大毛";
    car.makeSound = function(){
      alert("喵喵喵");
    };
  }
};

使用的時(shí)候,調(diào)用createNew()方法,就可以得到實(shí)例對(duì)象。

var cat1 = Cat.createNew();
cat1.makeSound();   //喵喵喵

這種方法的好處是,容易理解,結(jié)構(gòu)清晰優(yōu)雅,符合傳統(tǒng)的"面向?qū)ο缶幊?的構(gòu)造,因此可以方便地部署下面的特性。

關(guān)于“javascript如何定義類”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


本文名稱:javascript如何定義類
網(wǎng)站網(wǎng)址:http://weahome.cn/article/igessh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部