通过原型(prototype)扩充javascript内置对象
2011-10-20 23:57
489 查看
想要自定义js内置对象没有的函数,可以通过对象的原型(prototype)属性来扩展。
prototype是js的顶级对象Object对象的一个属性,它表示它的所有的内容都将被它所在的对象所拥有。
举个例子,js中的Date对象没有格式化日期的函数,我们可以自定义一个,代码如下:
Date.prototype.format = function(format) //author: meizz
{
var o = {
"M+ " : this.getMonth()+1, //month
"d+ " : this.getDate(), //day
"h+ " : this.getHours(), //hour
"m+ " : this.getMinutes(), //minute
"s+ " : this.getSeconds(), //second
"q+ " : Math.floor((this.getMonth()+3)/3), //quarter
"S " : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+ " ").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp( "( "+ k + ") ").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
( "00 "+ o[k]).substr(( " "+ o[k]).length));
return format;
} 定义完了后,我们就可以直接通过Date对象调用这个函数啦!
alert(new Date().format( "yyyy-MM-dd hh:mm:ss "));
prototype是js的顶级对象Object对象的一个属性,它表示它的所有的内容都将被它所在的对象所拥有。
举个例子,js中的Date对象没有格式化日期的函数,我们可以自定义一个,代码如下:
Date.prototype.format = function(format) //author: meizz
{
var o = {
"M+ " : this.getMonth()+1, //month
"d+ " : this.getDate(), //day
"h+ " : this.getHours(), //hour
"m+ " : this.getMinutes(), //minute
"s+ " : this.getSeconds(), //second
"q+ " : Math.floor((this.getMonth()+3)/3), //quarter
"S " : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+ " ").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp( "( "+ k + ") ").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
( "00 "+ o[k]).substr(( " "+ o[k]).length));
return format;
} 定义完了后,我们就可以直接通过Date对象调用这个函数啦!
alert(new Date().format( "yyyy-MM-dd hh:mm:ss "));
相关文章推荐
- ExtJs--09--javascript对象的方法的3种写法 prototype通过原型设置方法效率最好
- ExtJs--09--javascript对象的方法的3种写法 prototype通过原型设置方法效率最好
- Javascript对象原型prototype和继承
- javascript原型对象prototype
- JavaScript关于使用空函数来作为原型对象xx.prototype之间的桥梁的一些小问题
- [js高手之路]图解javascript的原型(prototype)对象,原型链实例
- Javascript中prototype属性实现给内置对象添加新的方法
- 通过 prototype 为 JavaScript 的 String 对象添加方法(函数)
- JavaScript原型对象prototype
- 收集JavaScript内置对象扩展原型函数1
- Javascript对象原型prototype和继承
- [js高手之路]一步步图解javascript的原型(prototype)对象,原型链
- JavaScript原型和闭包之---构造函数、原型与对象三者之间的关系(扩充constructor)(五)
- JavaScript-通过原型继承一个对象
- 收集JavaScript内置对象扩展原型函数2
- JavaScript为对象原型prototype添加属性的两种方式
- Javascript的原型对象和prototype属性
- 一张图理清js原型链(通过内置对象的引用关系)
- JavaScript 的原型对象 Prototype
- Javascript(二)-05-(常见对象-String-原型属性prototype)