javascript 封装 类
来源:互联网 发布:c语言时间函数 编辑:程序博客网 时间:2024/04/29 01:18
1 封装
首先,它也是用一个对象模拟"类"。在这个类里面,定义一个构造函数createNew(),用来生成实例。
var Cat = {
createNew: function(){
// some code here
}
};
然后,在createNew()里面,定义一个实例对象,把这个实例对象作为返回值。
var Cat = {
createNew: function(){
var cat = {};
cat.name = "旺财";
cat.makeSound = function(){ alert("汪汪汪汪"); };
return cat;
}
};
使用的时候,调用createNew()方法,就可以得到实例对象。
var cat1 = Cat.createNew();
cat1.makeSound(); //汪汪汪汪
这种方法的好处是,容易理解,结构清晰优雅,符合传统的"面向对象编程"的构造,因此可以方便地部署下面的特性。
2 继承
让一个类继承另一个类,实现起来很方便。只要在前者的createNew()方法中,调用后者的createNew()方法即可。
先定义一个Animal类。
var Animal = {
createNew: function(){
var animal = {};
animal.sleep = function(){ alert("sleep"); };
return animal;
}
};
然后,在Cat的createNew()方法中,调用Animal的createNew()方法。
var Cat = {
createNew: function(){
var cat = Animal.createNew();
cat.name = "旺财";
cat.makeSound = function(){ alert("汪汪汪汪"); };
return cat;
}
};
这样得到的Cat实例,就会同时继承Cat类和Animal类。
var cat1 = Cat.createNew();
cat1.sleep(); // sleep
3 私有属性和私有方法
在createNew()方法中,只要不是定义在cat对象上的方法和属性,都是私有的。
var Cat = {
createNew: function(){
var cat = {};
var sound = "汪汪汪汪";
cat.makeSound = function(){ alert(sound); };
return cat;
}
};
上例的内部变量sound,外部无法读取,只有通过cat的公有方法makeSound()来读取。
var cat1 = Cat.createNew();
alert(cat1.sound); // undefined
4 数据共享
有时候,我们需要所有实例对象,能够读写同一项内部数据。这个时候,只要把这个内部数据,封装在类对象的里面、createNew()方法的外面即可。
var Cat = {
sound : "汪汪汪汪",
createNew: function(){
var cat = {};
cat.makeSound = function(){ alert(Cat.sound); };
cat.changeSound = function(x){ Cat.sound = x; };
return cat;
}
};
然后,生成两个实例对象:
var cat1 = Cat.createNew();
var cat2 = Cat.createNew();
cat1.makeSound(); // 汪汪汪汪
这时,如果有一个实例对象,修改了共享的数据,另一个实例对象也会受到影响。
cat2.changeSound("噢噢噢噢");
cat1.makeSound(); // 噢噢噢噢
从网上找的,保存起来,
- javascript 封装 类
- javaScript-类的封装
- JavaScript类与封装
- [C#]JavaScript操作封装类
- [C#]JavaScript操作封装类
- JavaScript封装对象和类
- javascript 封装
- javascript封装
- JavaScript 封装
- JavaScript封装
- javascript 封装
- JavaScript封装
- 一个封装搜索引擎的javascript类
- javascript封装到类里面的方法
- 常用JavaScript代码提示公共类封装
- 公共类封装常用JavaScript代码提示
- javascript 模仿windows拖动 封装类
- javascript封装的类似java List类
- greenplum 节点失败后恢复步骤
- IT项目经理是否需要技术能力
- 如何找到创新点?
- 第85章、系统服务之ClipBoard_Service(从零开始学Android)
- 算法的力量 -- 1
- javascript 封装 类
- asp.net 关闭自动刷新父窗体及各种弹窗汇总
- nandflash对比norflash
- 第86章、系统服务之TELEPHONY_SERVICE(从零开始学Android)
- android基础
- 0015算法笔记——【动态规划】多边形游戏问题
- Java IO流与对象IO序列化
- xp,ubuntu双系统安装(不写入mbr)
- 使用Instruments解决EXC_BAD_ACCESS