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

首頁 > 語言 > JavaScript > 正文

JavaScript prototype屬性使用說明

2024-05-06 14:10:04
字體:
來源:轉載
供稿:網友
這一點可能聽起來會有點亂,別急,下面我便通過實例對這一特殊的方法作已下講解:

  首先,我們要先了解一下類的概念,JavaScript 本身是一種面向對象的語言,它所涉及的元素根據其屬性的不同都依附于某一個特定的類。我們所常見的類包括:數組變量(Array)、邏輯變量(Boolean)、日期變量(Date)、結構變量(Function)、數值變量(Number)、對象變量(Object)、字符串變量(String) 等,而相關的類的方法,也是程序員經常用到的(在這里要區分一下類的注意和屬性發方法),例如數組的push方法、日期的get系列方法、字符串的split方法等等,

  但是在實際的編程過程中不知道有沒有感覺到現有方法的不足?prototype 方法應運而生!下面,將通過實例由淺入深講解 prototype 的具體使用方法:


1、最簡單的例子,了解 prototype:
(1) Number.add(num):作用,數字相加
實現方法:Number.prototype.add = function(num){return(this+num);}
試驗:alert((3).add(15)) -> 顯示 18


(2) Boolean.rev(): 作用,布爾變量取反
實現方法:Boolean.prototype.rev = function(){return(!this);}
試驗:alert((true).rev()) -> 顯示 false

是不是很簡單?這一節僅僅是告訴讀者有這么一種方法,這種方法是這樣運用的。


2、已有方法的實現和增強,初識 prototype:
(1) Array.push(new_element)
  作用:在數組末尾加入一個新的元素
  實現方法:
代碼如下:
  Array.prototype.push = function(new_element){
this[this.length]=new_element;
return this.length;
}

  讓我們進一步來增強他,讓他可以一次增加多個元素!
  實現方法:
代碼如下:
  Array.prototype.pushPro = function() {
var currentLength = this.length;
for (var i = 0; i < arguments.length; i++) {
this[currentLength + i] = arguments[i];
}
return this.length;
}

  應該不難看懂吧?以此類推,你可以考慮一下如何通過增強 Array.pop 來實現刪除任意位置,任意多個元素(具體代碼就不再細說了)

(2) String.length
  作用:這實際上是 String 類的一個屬性,但是由于 JavaScript 將全角、半角均視為是一個字符,在一些實際運用中可能會造成一定的問題,現在我們通過 prototype 來彌補這部不足。
  實現方法:
  String.prototype.cnLength = function(){
var arr=this.match(/[^/x00-/xff]/ig);
return this.length+(arr==null?0:arr.length);
}
  試驗:alert("EaseWe空間Spaces".cnLength()) -> 顯示 16
  這里用到了一些正則表達式的方法和全角字符的編碼原理,由于屬于另兩個比較大的類別,本文不加說明,請參考相關材料。


3、新功能的實現,深入 prototype:在實際編程中所用到的肯定不只是已有方法的增強,更多的實行的功能的要求,下面我就舉兩個用 prototype 解決實際問題的例子:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 廊坊市| 饶平县| 京山县| 区。| 宜州市| 罗城| 凉城县| 武平县| 蒙城县| 汉寿县| 友谊县| 永川市| 兰考县| 河源市| 新邵县| 宜城市| 云安县| 阳谷县| 宝应县| 岳池县| 锡林浩特市| 舞钢市| 紫阳县| 商丘市| 清原| 厦门市| 临夏县| 务川| 临汾市| 河北区| 密云县| 通榆县| 克什克腾旗| 敦化市| 韩城市| 泾源县| 砀山县| 桑植县| 孟津县| 高密市| 台江县|