可以用prototype属性为任何已有的类定义新方法
,就像处理自己的类一样。现为Number添加一个转十六进制的方法:
Number.prototype.toHexString = function(){
return this.toString(16);
}
var iNum =15;
alert(iNum.toHexString());//f
如果想给ECMAScript中的每个本地对象添加新方法,必须在Object对象的prototype属性上定义它
。如上一章所述,所有本地对象都继承
了Object对象,所以对Object对象做任何改变,都会反应在所有本地对象中
。例如,如果想添加一个用警告输出对象的当前值的方法,可以采用下面的
代码:
Object.prototype.showValue=function(){
alert(this.valueOf());
}
var str = 'hello';
var iNum=25;
str.showValue();//hello
iNum.showValue();//25
这里,String和Number对象都从Object对象继承了showValue()方法,分别在它们的对象上调用该方法,将显示"hello"和"25"。
就像能给已有的类定义新方法一样,也可重定义已有的方法
。现对Function类的toString()函数重写,原有的toString()是返回Function的源代码 。
var fun = function(){
return 1;
}
alert(fun.toString());//输出上面的源码
Function.prototype.toString = function(){
return 'code hidden';
}
alert(fun.toString());//code hidden
支持晚绑定
从技术上来说,根本不存在极晚绑定。但javaScript能够在对象实例化后再定义它的方法。例如:
var o = new Object();
Object.prototype.sayHi = function(){
alert('hi');
}
o.sayHi();//hi
分享到:
相关推荐
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化...
Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理...
关于本站“设计模式” Java 提供了丰富的 API,同时又有强大的数据库系统作底层支持,那么我们的编程似乎变成了类似积木的简单"拼凑"和调用, 甚至有人提倡"蓝领程序员",这些都是对现代编程技术的不了解所至. 在...
SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点 * 可以...
1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括...
HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的...
16.12 判断表单是否已修改 16.13 判断控件的类型 16.14 密码强度检查 16.15 身份证的验证 16.16 JavaScript生成验证码 16.17 JavaScript生成验证码(二) 第17章 进度条、滚动条特效处理 17.1 使用符号制作的进度条 ...
16.12 判断表单是否已修改 16.13 判断控件的类型 16.14 密码强度检查 16.15 身份证的验证 16.16 JavaScript生成验证码 16.17 JavaScript生成验证码(二) 第17章 进度条、滚动条特效处理 17.1 使用符号制作的进度条 ...
对象绑定事件 document.all.xxx.detachEvent("onclick",a); 插件数目 navigator.plugins 取变量类型 typeof($js_libpath) == "undefined" 下拉框 下拉框.options[索引] 下拉框.options.length 查找对象 ...