国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript面向對象程序設計中對象的定義和繼承詳解

2024-05-06 15:36:27
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript面向對象程序設計中對象的定義和繼承。分享給大家供大家參考,具體如下:

在面向對象的Javascript編程中,希望代碼優雅有高效是非常重要的。javascript中不存在類的概念,只有對象。要想把Javascript代碼寫的像java 或者C++一樣優雅,就得考慮如何去實現,同時也要考慮性能和高效。定義javascript對象的方式有很多,繼承的方式也很多。通過不斷地實踐,推薦如下的方法:

1.Javascript對象的定義采用混合方式【構造函數 +原型方式(prototype)】

(1)通過構造函數方式定義對象的所有非函數屬性

(2)用原型方式定義對象的函數屬性

采用這種方式,所有的屬性都是單一對象私有的,而方法則是所有對象公有的,對象之間的屬性不相互干擾,各個對象間共享同一個方法。

//使用原型+構造函數方式來定義對象//構造函數定義對象的非函數屬性<strong>function Person(){    this.username = new Array();    this.password = "123";}//通過原型方式定義對象的函數Person.prototype.getInfo = function(){    alert(this.username+","+this.password);};var p = new Person();var p2 = new Person();p.username.push("zhangsan");p2.username.push("lisi");p.getInfo();p2.getInfo();

在現實的開發過程中,我們可能希望開發的各個類(實質是對象)能像java程序中放到一個包中統一管理,統一使用,而各個對象相互獨立,同時避免對象重名等等因素,我們需要給每個類有個作用域,此時我們采用將對象放到自定匿名函數的方式來解決,這一點和jQuery開發插件的有點類似。代碼如下:

/** * @author jasson * @include common.js *///對象存在就等于對象,對象不存在就創建{}var JassonChart = JassonChart || {};(function(){  //構造函數定義對象的非函數屬性  function Person()  {    this.username = new Array();    this.password = "123";  }  //通過原型方式定義對象的函數  Person.prototype.getInfo = function()  {      alert(this.username+","+this.password);  };  //將該類放到JassonChart中,類似java中的包,或者C++中的  JassonChart.Person= Person;}());//調用該類庫中的Person類var p = new JassonChart.Person();

這樣我們可以定義多個類,每個類都采用如上的方式實現,這樣各個類相互都有作用域,非常規范。對于我們要用到的一些工具類,我們可以采用簡單的對象進行定義,代碼如下

/*** @author jasson*/var JassonChart = JassonChart || {};JassonChart .util = {constants : {WIDTH : 'width',HEIGHT : 'height',SVG : 'SVG',CANVAS : 'CANVAS',G : 'G', //svg elementSTRING : 'string'},distance : function(a, b) {var dx = a.x - b.x;var dy = a.y - b.y;return Math.sqrt(dx * dx + dy * dy);}};            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 道孚县| 个旧市| 赤水市| 镇安县| 吴忠市| 那坡县| 镇宁| 上林县| 眉山市| 临汾市| 乌兰察布市| 读书| 综艺| 汝南县| 宜宾县| 高碑店市| 尼玛县| 会理县| 五河县| 获嘉县| 华池县| 无极县| 元江| 贵阳市| 闸北区| 麟游县| 铜川市| 临安市| 嵊泗县| 丘北县| 建阳市| 克什克腾旗| 镇宁| 梨树县| 兰考县| 六盘水市| 宁阳县| 武威市| 克什克腾旗| 昌黎县| 永兴县|