修改對象
1、建立新方法
javascript 樂趣的一部分就是建立屬於你自己的方法。你可以用它來做一些常用的操作。提高效率(人肉效率,程式效率.....)。
考慮下面例子:
1 var iNum = 10;
2 iNum = iNum.toString(16);
3 alert(iNum); // output "a"
這裡使用 Number 對象的 toStrong 方法, 將 iNum 轉換成16進位的字元.如果我們需要頻繁的操作此類數字.比如在顏色資料的操作上.你那麼我們可以這麼建立新的方法
重寫上面的例子:
1 Number.prototype.toHexString = function(){
2 return this.toString(16); // this 總是指向調用該方法的對象
3 }
4 var iNum = 10;
5 alert(iNum.toHexString()); // output "a"
同時你也可以逆向編寫 16進位字元 轉到 10進位數位操作. 建立以下方法
1 String.prototype.HexToDecimal = function(){
2 return parseInt(this,16);
3 }
4
5 var sNum = "1F";
6 alert(sNum.HexToDecimal()); // output 31
這樣你就可以定義屬於自己的方法.
還可以增加一些 本機物件 個別 已有的方法. String 具有 indexOf 方法. 而數組卻沒有.那麼我們可以增加一致的方法
例子:
1 Array.prototype.indexOf = function(sItem){
2 for(var i in this){
3 if(sItem == this[i])return i;
4 }
5 };
6 var aTest = ["a","b","c"];
7 alert(aTest .indexOf("b"));
如果想讓每個本機物件都添加一個相同的的方法.那麼你可以這麼定義
1 Object.prototype.sayValue = function(){
2 alert(this.valueOf());
3 };
4 var sShow = "bay bay";
5 var iNum = 88;
6 sShow.sayValue(); // output "bay bay"
7 iNum .sayValue(); // output "88"
2、重定義已有方法
當然你還可以覆蓋原來的方法,
1 Function.prototype.toString= function(){
2 return "is nothing"
3 };
4 function sayHello(){
5 alert("Hello");
6 }
7 alert(sayHello.toString());