JavaScript备忘录(0106更新ing......)
2008-12-09 17:23
309 查看
虚函数是类成员中的概念,是只做了一个声明而未实现的方法,具有虚函数的类就称之为抽象类,这些虚函数在派生类中才被实现。
抽象类是不能实例化的,因为其中的虚函数并不是一个完整的函数,不能被调用。所以抽象类一般只作为基类被派生以后再使用。
这里Class是一个全局对象,具有一个方法create,用于返回一个函数(类),从而声明一个类,可以用如下语法:
var class1=Class.create();
但实际上可以把Class.create()返回的类看作所有类的共同基类,它在构造函数中调用了一个虚方法initialize,所有继承于它的类都必
须实现这个方法,完成构造函数的功能
var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
var class1 = Class.create();
class1.prototype={
initialize:function(strname){
alert(strname);
}
}
var c = new class1("www");
这样,每次创建类的实例时,initialize方法都会得到执行,从而实现了将类的构造函数和类成员一起定义的功能
当new一个函数时,这个函数就是所代表的类构造函数
var arrList = document.getElementsByTagName("input");
for (var i = 0; i < arrList.length; i++)
<SELECT id="ClassListB" name="ClassListB">
<OPTION></OPTION>
</SELECT>
ClassListB.options[ClassListB.options.length] = new Option(ClassListB.options[ClassListB.selectedIndex].text,'a');
obj.options[obj.options.length] = new Option(text,value);
var num = [1,2,3];
this[this.length] = 4; //向数组添加一个
<link rel='stylesheet' type='text/css' href="hello.css" />
<script type="text/javascript" src="hello.js" />
但实际上可以把Class.create()返回的类看作所有类的共同基类,它在构造函数中调用了一个虚方法initialize,
所有继承于它的类都必须实现这个方法,完成构造函数的功能。它们得以实现的本质就是对prototype的操作
这样,每次创建类的实例时,initialize方法都会得到执行,从而实现了将类的构造函数和类成员一起定义的功能
var x=Class.create(); //Class.create() 声明一个类
var a = new x('aaa');
a.show();
myobj.funsize = funsize; // 省略括号 调用函数
//funsize表示这个函数的返回值付给myobj.funsize 传递的是一个Function对象 而不是对那个对象的调用
var myobj = new Object();
myobj.size = '12';
function funsize()
myobj.funsize = funsize;
//省略()括号调用函数 funsize()表示这个函数的返回值付给myobj.funsize
抽象类是不能实例化的,因为其中的虚函数并不是一个完整的函数,不能被调用。所以抽象类一般只作为基类被派生以后再使用。
这里Class是一个全局对象,具有一个方法create,用于返回一个函数(类),从而声明一个类,可以用如下语法:
var class1=Class.create();
但实际上可以把Class.create()返回的类看作所有类的共同基类,它在构造函数中调用了一个虚方法initialize,所有继承于它的类都必
须实现这个方法,完成构造函数的功能
var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
var class1 = Class.create();
class1.prototype={
initialize:function(strname){
alert(strname);
}
}
var c = new class1("www");
这样,每次创建类的实例时,initialize方法都会得到执行,从而实现了将类的构造函数和类成员一起定义的功能
当new一个函数时,这个函数就是所代表的类构造函数
var arrList = document.getElementsByTagName("input");
for (var i = 0; i < arrList.length; i++)
<SELECT id="ClassListB" name="ClassListB">
<OPTION></OPTION>
</SELECT>
ClassListB.options[ClassListB.options.length] = new Option(ClassListB.options[ClassListB.selectedIndex].text,'a');
obj.options[obj.options.length] = new Option(text,value);
var num = [1,2,3];
this[this.length] = 4; //向数组添加一个
<link rel='stylesheet' type='text/css' href="hello.css" />
<script type="text/javascript" src="hello.js" />
但实际上可以把Class.create()返回的类看作所有类的共同基类,它在构造函数中调用了一个虚方法initialize,
所有继承于它的类都必须实现这个方法,完成构造函数的功能。它们得以实现的本质就是对prototype的操作
这样,每次创建类的实例时,initialize方法都会得到执行,从而实现了将类的构造函数和类成员一起定义的功能
var x=Class.create(); //Class.create() 声明一个类
var a = new x('aaa');
a.show();
myobj.funsize = funsize; // 省略括号 调用函数
//funsize表示这个函数的返回值付给myobj.funsize 传递的是一个Function对象 而不是对那个对象的调用
var myobj = new Object();
myobj.size = '12';
function funsize()
myobj.funsize = funsize;
//省略()括号调用函数 funsize()表示这个函数的返回值付给myobj.funsize
相关文章推荐
- CSS备忘录(090114更新ing......)
- XML备忘录(更新ing......)
- SQL备忘录(0106更新......)
- javascript浏览器兼容性(不断更新中)
- 故障处理记录-tempdb太大引起磁盘容量不足的处理(更新ing)
- Pregel:大规模图处理系统(待更新ing)
- Pregel:大规模图处理系统(待更新ing)
- [导入]页面自动更新(javascript)
- 二分搜索 小讲 【 理解 + 例题 】 更新ing......
- javascript和C#的比较(持续更新)
- [总结] Linux备忘录 [2012-02-08更新]
- Javascript之学习笔记每日更新
- 转发:编程之余保护眼睛[不断更新ing...]
- android调试问题解决(持续更新ing)
- Cocos2d-x使用过程中遇到的错误(VS下开发,移植到Android发布)(更新ing)
- 【JavaScript 基础知识】一篇关于 JavaScript 一些知识点的总结 —— 持续更新
- Javascript 兼容性问题汇总___待整理版___不定时更新
- MAC终端简单命令(更新ing)
- 更新博客ing
- javascript实现的实时更新时间记录(运行时长)