华南俳烁实业有限公司

考試首頁(yè) | 考試用書(shū) | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
  當(dāng)前位置:設(shè)計(jì)制作 > JavaScript > 文章內(nèi)容
  

javascript面向?qū)ο缶幊讨膄unction也是”類”

 [ 2017年9月4日 ] 【

  function在javascript中用來(lái)創(chuàng)建函數(shù)或方法,但要想實(shí)現(xiàn)面向?qū)ο蠓绞降木幊,類是不可或缺的角色之一,而且是主角。但javascript中并沒(méi)有類概念,所謂的類也是模擬而來(lái),通過(guò)函數(shù)加閉包模擬出類成員及私有成員(關(guān)于閉包可以參見(jiàn)跨越邊界: 閉包)。這里我們將用比較平實(shí)的方式來(lái)了解一下javascript中的”類”,避開(kāi)一些生硬的原理。

  既然是用function來(lái)模擬類,所以編寫(xiě)代碼創(chuàng)建類的關(guān)鍵字還是function。我們創(chuàng)建一個(gè)座標(biāo)點(diǎn)類。

  function Point() {

  this.X = 0;

  this.Y = 0;

  };

  var zeroPoint = new Point();

  alert("當(dāng)前座標(biāo)值( X:" + zeroPoint.X + " , Y:" + zeroPoint.Y + " )");

  大家都知道非靜態(tài)類成員的訪問(wèn)需要通過(guò)對(duì)象來(lái)完成,所以先new出了一個(gè)Point類型對(duì)象,再通過(guò)該對(duì)象完成X和Y軸座標(biāo)值的訪問(wèn)。從語(yǔ)法上來(lái)說(shuō),javascript類對(duì)象的創(chuàng)建過(guò)程和C#等差不多,但實(shí)現(xiàn)機(jī)制卻不相同。這里的new創(chuàng)建出了一個(gè)Object,后續(xù)的Point()函數(shù)執(zhí)行時(shí)將其this指向了這個(gè)新的Object對(duì)象。Point中的this.X和this.Y是Point類的兩個(gè)公共成員,所以Point的對(duì)象可以直接對(duì)它們進(jìn)行訪問(wèn)。

  說(shuō)到類成員或?qū)ο蟮某蓡T,免不了要提到可訪問(wèn)性的問(wèn)題。在javascript的類中,也有public成員和private成員之分,但究其細(xì)節(jié)卻不盡相同。javascript私有成員也是些在類外部不可以通過(guò)對(duì)象進(jìn)行操作的成員,其實(shí)在類的內(nèi)部成員之間私有成員也不定能被訪問(wèn)。在類的內(nèi)部一般只有私有成員和私有成員之間可以互相的訪問(wèn),你可以認(rèn)為其它成員權(quán)限不夠不能操作這些隱私的東西,但如果你有特權(quán),那就不一樣了,管它私有公開(kāi)照用不誤。私有成員變量和普通變量聲明一樣,用var關(guān)鍵字,私有方法可以用var聲明變量來(lái)接收方法對(duì)象,也可以像普通方法那樣去構(gòu)建。

  function Lady() {

  var age = 30;

  var name = "菜花";

  var think = function() {

  alert("其實(shí)我今年" + age + "歲。");

  };

  function fancy(){

  alert("幻想變成20歲。");

  };

  this.Introduce = function() {

  alert("我叫" + name + " , 今年20歲。");

  };

  };

  var younglady = new Lady();

  alert(younglady.age);//結(jié)果undefined

  younglady.think(); //不支持

  younglady.fancy(); //不支持

本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問(wèn)考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見(jiàn)留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
航空| 桐乡市| 两当县| 秦皇岛市| 全南县| 朝阳市| 工布江达县| 遂平县| 图们市| 和顺县| 板桥市| 疏勒县| 珲春市| 资源县| 健康| 安达市| 高州市| 普格县| 凯里市| 海原县| 社会| 慈溪市| 塔河县| 东山县| 嘉鱼县| 四会市| 微山县| 平邑县| 桐城市| 沭阳县| 隆子县| 赞皇县| 蓝田县| 安陆市| 梅河口市| 法库县| 翁源县| 瓦房店市| 平果县| 平泉县| 威海市|