Base.js 库 实现 JS 的对象化编程
来源:互联网 发布:针织短款开衫淘宝网 编辑:程序博客网 时间:2024/06/05 06:16
最近在研究JS的面向对象编程。
由于JS使用Function的概念来代替Class,往往使用这种方式来定义一个对象:
function JSClass()
{
//成员变量
this.m_Text = 'division element';
this.m_Element = document.createElement('DIV');
this.m_Element.innerHTML = this.m_Text;
this.m_Element.attachEvent('onclick', this.ToString);
}
//成员方法
JSClass.prototype.Render = function()
{
document.body.appendChild(this.m_Element);
}
JSClass.prototype.ToString = function()
{
alert(this.m_Text);
};
var jc = new JSClass();
jc.Render();
jc.ToString();
后来找到:
很多的JS项目中使用了这种方式来实现
引入一个老外牛人叫做(dean.edwards)开发的基类: base.js
然后,就可以更加面向对象的方式编写JS的class类了,还支持扩展等。
按照他的说法,写此基类的目的就是:
MyClass.prototype
cruftsuper
)Object.prototype
基本的使用方法就是:
var Animal = Base.extend({
constructor: function(name) {
this.name = name;
},
name: "",
eat: function() {
this.say("Yum!");
},
say: function(message) {
alert(this.name + ": " + message);
}
});
成员变量和方法的创建都比原来简单吧。
使用就是这样:
new Animal("cats").say("fish");
如果
ani = new Animal();
那么ani.name 就是 undefined 了
继承:
var Cat = Animal.extend({
eat: function(food) {
if (food instanceof Mouse) this.base();
else this.say("Yuk! I only eat mice.");
}
});
可见,在子类中,使用this.base的方式来调用super中的同名方法。
更多的使用方法可以搜索这个作者的博客。
附上我的测试代码
- Base.js 库 实现 JS 的对象化编程
- base.js很多面向对象的js实现封装
- js面向对象编程-base基类-Dean Edwards
- js 实现面向对象编程
- Js:对象化编程
- js对象化编程
- JS中的Base库
- JS的编程实现
- 【JS】JS的面向对象编程
- Base.js
- base.js
- Base.js
- js的面向对象编程
- js面向对象的编程
- js的面对对象编程
- 使用面向对象的编程思想实现js代码
- 基于jQuery,实现JS面向对象编程
- [JS]JS面向对象编程
- myEclipse 中修改 jsp 文件默认pageEncoding
- CSU1120-病毒-DP/LCS/LIS
- hadoop的mapreduce作业中出现Java heap space,你认为该如何解决?
- 第三学期第六次算法练习题
- CSU1216-异或最大值-0-1Trie树
- Base.js 库 实现 JS 的对象化编程
- 《统计学习方法》第1章 课后题答案
- CSU1225-ACM小组的队列-DP/LCS加强
- 使用GIT进行硬件版本控制
- 冒泡排序
- 《权限系列》----用redis存储HashMap
- CSU1001/1002/1683/1639/1524/1816/1888/1893/1202/1203/1212
- CSU1684-Disastrous Downtime-STL
- tcpdump抓的是哪一层的包?