給對象增減方法
function Rect(w, h) { this.width = w; this.height = h;}var r = new Rect(2, 3);/* 給 r 對象增加一個計算面積的方法 area() */r.area = function() {return this.width * this.height};alert(r.width); //2alert(r.height); //3alert(r.area()); //6delete r.area; //刪除剛剛增加的方法alert(r.area); //undefined
給類增減方法
function Rect(w, h) { this.width = w; this.height = h;}var r = new Rect(2, 3);/* 給 r 對象所屬的類增加一個計算面積的方法 area() */Rect.prototype.area = function() {return this.width * this.height};alert(r.width); //2alert(r.height); //3alert(r.area()); //6/* 給類(而不是對象)增加的方法會影響到旗下所有對象 */var r2 = new Rect(4, 5);alert(r2.width); //4alert(r2.height); //5alert(r2.area()); //20delete Rect.prototype.area; //刪除剛剛給類增加的方法alert(r.area); //undefined
給其他類增加方法
/* 給 Array 增加一個倒排序的方法 */Array.prototype.usort = function() {this.sort(); this.reverse()}; //該函數寫得太湊合了var arr = new Array(1,3,2,4,3,5);arr.sort();alert(arr); //1,2,3,3,4,5arr.usort();alert(arr); //5,4,3,3,2,1/* 假如給 Object 增加一個方法 */Object.prototype.msg = function() {alert('我無處不在!');}var obj = {};obj.msg(); //我無處不在!var arr = [];arr.msg(); //我無處不在!var str = '';str.msg(); //我無處不在!