转 javascript实现接口
原文地址:http://www.cnblogs.com/harrychen66/archive/2008/10/10/488457.html
javascript实现接口
相信很多人之所以对javascript没有好感,可能是因为它太随意了,例如定义变量可以随意的加var,或者不加,每条语句后面的可以随意的加上";",或者不加,可能最难忍受的是,var了一个变量后,它可以是任何类型,没有限制.
例如定义了一个str的变量
var str;
没有赋值给它,它是一个"undefined"类型的变量
然后:
str = "hello world!";
它就是一个string类型的变量,然后如果你喜欢,你可以尝试再改变它的类型:
str = 1;
这时它就是一个number类型了.
如此宽容的类型变换,有时确实带来方便,不过你想要它象c#或者其他语言一样要严格的类型规范,也是有办法做到的,这里用了类似.net的接口特性,不过将要说的方法,不能在"编译"中检查,只能在运行时检查类型.
首先有一个存在的类:
function Person(){
this.name = "";
this.age = 0;
this.get = function(){
return "my name is " + this.name + ", and i am " + this.age + " years old";
};
this.set = function(name, age){
this.name = name;
this.age = age;
};
}
正确的使用如:
var person = new Person();
person.set("harry", 27);
var str = person.get();
alert(str);
正如前面说的,如果是下面的做法也是不会出现任何问题的:
person.setName(true, "hello");
好了,如果现在你无法忍受出现这样的情况,用接口实现它吧:
function interface(){
this.arrFunc = []; // 保存这个类的方法数组
this.addMethod = function(sFuncName, aParamType, sReturnType){ // 添加接口的方法
this.arrFunc[this.arrFunc.length] = {funcName:sFuncName, param:aParamType, ret:sReturnType}; // 方法名称,参数类型,返回类型
};
this.set = function(obj){
fo
相关文档:
一,脚本程序与javascript
嵌套在HTML中的语言称为脚本语言,浏览器必须具有脚本引擎对嵌入HTML中的脚本程序进行解释。
eg:
<HTML>
<script language="JavaScript">
//VBScript,Jscript,ECMAScript
<!--
alert(n ......
近日,知名技术开发网站SYS-CON 媒体列出十个应用最广的javascript框架。文章说,Javascript库已经成为设计优秀网站的基础,当今几乎所有站点都带有Javascript或Ajax元素。在Web2.0开发大潮中,它也许是最关键的要素。
以下十大Javascript框架,你常用其中的几个?
1. script.aculo.us (http://script.aculo.us/)
......
根据身份证号码取得生日与性别,并判断18位身份证的正确与错误:
function showBirthday(val){
var birthdayValue;
if(15==val.length){//15位身份证号码
birthdayValue = val.charAt(6)+val.charAt(7);
if(parseInt(birthdayValue)<10){
birthdayValue = '20'+birthdayValue;
}else{
birthdayValue = '1 ......
判断浏览器类型
<SCRIPT language=javascript>
if(navigator.appVersion.indexOf("MSIE 6.") != -1 ){
window.location = "111.htm" ;
}
</SCRIPT>
按钮背景图片替换
<input type=button style="background-image:url(a.gif)" value=test onmouseover="this.style.backgroundImage='url(b.gif ......
日志原文:http://zzgziyu.blog.sohu.com/109589244.html
<script>
("<html
xmlns:v><style>v\\:*{behavior:url(#default#VML)}</style>")
var
ct1=new ct()
function ct(){
="green,yellow,red,blue,gray,purple".split(",")
&nb ......