手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >一个友好的.改善的 Object.prototype.toString的实现
一个友好的.改善的 Object.prototype.toString的实现
摘要:JavaScript中几乎每个对象都有一个toString()方法,而且是内置的.用来输出当前变量的信息.但是对于我们最常用的Object对...

JavaScript中几乎每个对象都有一个toString()方法,而且是内置的.用来输出当前

变量的信息.但是对于我们最常用的Object对象.每次用toString都是打印[objectObject]

{a:1,b:2,c:3}.toString()===>[objectObject]

让人十分郁闷,为此我实现了一个友好的,打印Object各成员的函数,

支持嵌套输出,也能友好打印数组内容.

这里贴出代码,希望和大家一起学习,一起完善,改进这个函数.

说句题外话,用Vim写程序,可不是一般的爽啊.

我表达能力有限,只能用"爱不释手"来表达我对Vim的爱

http://www.vim.org/

/* vi:set tw=0 ts=4 sw=4 noet nowrap ft=javascript fdm=syntax ai: */ /* Date对象输出为字符, 返回类似: "2002年2月1日 1:01:01" 的格式 part: 0:(默认)返回日期和时间 1:只返回日期 2:只返回时间 sp: undefined :(默认)返回 "2002-2-1 1:01:01" 非undefined: 返回 "2002年2月1日 1:01:01" */ Date.prototype.tos=function(part,sp){ var hash={"0":"","1":"Date","2":"Time"} , ret , part=part || 0; //因为 toLocaleString的输出完全处决于客户机操作系统的设置,所以我们要先测试一下 if ((new Date(2000,1,1,1,1,1)).toLocaleString()=="2000年2月1日 1:01:01"){ ret=String(this["toLocale"+hash[part]+"String"]()); }else{ //不是我们想要的格式,只能自己实现 var yyyy=this.getFullYear(); var nn=this.getMonth()+1; var dd=this.getDate(); var hh=this.getHours(); var mm=String("00"+this.getMinutes()).right(2); var ss=String("00"+this.getSeconds()).right(2); var dateString=yyyy+"年"+nn+"月"+dd+"日"; var timeString=hh+":"+mm+":"+ss; hash={"0":dateString+" "+timeString,"1":dateString,"2":timeString}; ret= hash[part]; } return sp==undefined?ret.replace(/[年月]+/g,"-").replace("日",""):ret; } RegExp.prototype.tos=function(){ return this.toString(); } Number.prototype.tos=function(){ return this.toString(); } String.prototype.tos=function(){ if (this.indexOf("'")!=-1){ return '"'+this.replace(/"/g,'"')+'"'; }else{ return "'"+this.replace(/'/g,"'")+"'"; } } /* "".left 和 "".right 模拟实现 vbs里面的 left和right函数,截取字符串 不过这里的实现支持中文 ,会把一个汉字当两个字符来计算。 */ String.prototype.right=function(n){ return this.slice(this.slice(-n).replace(/[x00-xff]/g,"").length-n); } String.prototype.left=function(n){ // alert("abcdefg".left(3)==="abc");alert("中国人cdefg".left(5)==="中国"); //alert("中国abcdefg".left(5)==="中国a") return this.slice(0,n-this.slice(0,n).replace(/[x00-xff]/g,"").length); } //列出函数名和参数列表,内容用替代 Function.prototype.tos=function(){ var ret=this.toString(); return ret.left(ret.indexOf(")"))+"){}"; } Array.prototype.tos=function(){ for(var i=0,arr=[];i

【一个友好的.改善的 Object.prototype.toString的实现】相关文章:

Javascript中的Prototype到底是什么

新闻一段时间向上滚动效果

本窗口将在秒后自动关闭

自动设为主页

COOL而实用的动态效果

在b/s开发中经常用到的javaScript技术

document 和 document.all 分别什么时候用

打印/预览/设置的客户端代码

JavaScript实现斗地主游戏的思路

7个有用的jQuery代码片段分享

精品推荐
分类导航