javascript 对象基础定义类或对象(2)

修改对象

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());



posted @ 2011-12-29 13:15  noyobo  阅读(214)  评论(0编辑  收藏  举报