JS.Class - 2. Methods & Types
2009-10-13 00:00:00 来源:WEB开发网另外一个实用的方法就是 Singleton 了,最常用的模式之一,不是吗?要知道 JavaScript 可没有 private 访问修饰符,我们无法弄一个 private initialize() 出来。
var User = new JS.Singleton(
{
name : "User",
print : function() { document.write(this.name + "<br />"); }
});
//var o = new User();
User.print();
这样用来,你无法用 new User() 来创建对象实例,它会导致一个错误。
Microsoft JScript 运行时错误: 对象不支持此操作
当然,我们也可以让继承类变成 Singleton。
var User = new JS.Class(
{
name : "User",
print : function() { document.write(this.name + "<br />"); }
});
var Manager = new JS.Singleton(User, {});
var o = new User();
Manager.print();
既然有了类和继承,那么 Type 的相关操作就是必须的了。要知道 JavaScript 的变量是无类型的,某些时候我们必须验证一些危险分子的身份。
var User = new JS.Class({});
var Manager = new JS.Class(User, {});
var o = new Manager("Tom");
alert(o.isA(Manager));
alert(o.isA(User));
很典型的 C# is 关键字的用法,isA 很好地支持了继承体系。
var User = new JS.Class({});
var Manager = new JS.Class(User, {});
var o = new Manager("Tom");
alert(o.klass == Manager); // true
alert(o.klass.superclass == User); // true
编缉推荐阅读以下文章
- JS.Class - 3. Modules & Mixins
- JS.Class - 1. Classes & Inheritance
更多精彩
赞助商链接