`
mayi_hetu
  • 浏览: 14495 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

javascript 类继承模型

阅读更多

//语法甘露:
var object = //定义小写的object 基本类,用于实现最基础的方法等
{
isA: function(aType) //一个判断类与类之间以及对象与类之间关系的基础方法
{
var self = this;
32
while(self)
{
if (self == aType)
return true;
self = self.Type;
};
return false;
}
};
function Class(aBaseClass, aClassDefine) //创建类的函数,用于声明类及继承关系
{
function class_() //创建类的临时函数壳
{
this.Type = aBaseClass; //我们给每一个类约定一个Type 属性,引用其继承的

for(var member in aClassDefine)
this[member] = aClassDefine[member]; //复制类的全部定义到当前创建
的类
};
class_.prototype = aBaseClass;
return new class_();
};
function New(aClass, aParams) //创建对象的函数,用于任意类的对象创建
{
function new_() //创建对象的临时函数壳
{
this.Type = aClass; //我们也给每一个对象约定一个Type 属性,据此可以访问
到对象所属的类
33
if (aClass.Create)
aClass.Create.apply(this, aParams); //我们约定所有类的构造函数都叫Crea
te,这和DELPHI 比较相似
};
new_.prototype = aClass;
return new new_();
};
//语法甘露的应用效果:
var Person = Class(object, //派生至object 基本类
{
Create: function(name, age)
{
this.name = name;
this.age = age;
},
SayHello: function()
{
alert("Hello, I'm " + this.name + ", " + this.age + " years old.");
}
});
var Employee = Class(Person, //派生至Person 类,是不是和一般对象语言很相似?
{
Create: function(name, age, salary)
{
Person.Create.call(this, name, age); //调用基类的构造函数
this.salary = salary;
},
ShowMeTheMoney: function()
34
{
alert(this.name + " $" + this.salary);
}
});
var BillGates = New(Person, ["Bill Gates", 53]);
var SteveJobs = New(Employee, ["Steve Jobs", 53, 1234]);
BillGates.SayHello();
SteveJobs.SayHello();
SteveJobs.ShowMeTheMoney();
var LittleBill = New(BillGates.Type, ["Little Bill", 6]); //根据BillGate 的类型创建
LittleBill
LittleBill.SayHello();
alert(BillGates.isA(Person)); //true
alert(BillGates.isA(Employee)); //false
alert(SteveJobs.isA(Person)); //true
alert(Person.isA(Employee)); //false
alert(Employee.isA(Person)); //true

分享到:
评论

相关推荐

    JavaScript对象继承模型Fiber.js.zip

    Fiber.js 是来自 Linkedin 的一个轻量级的 JavaScript 对象继承模型。示例代码:// Animal base class var Animal = Fiber.extend(function() {  return {  // The `init` method serves as the ...

    PerfTests:JavaScript 继承性能测试正确完成

    JavaScript 类继承模型的准确测试,该模型模拟真实世界的应用程序行为,旨在提供更好的准确性。 只测试最快和最流行的类系统。 例如:Prototype.js 类的速度大约是 native 的 1%,所以没有理由包含它。 这同样适用...

    强大的原型和原型链

    JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型。 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大。实现传统的类继承模型是很简单,但是实现 ...

    JavaScript对象模型-执行模型

    PDF内容:1.基本类型;2.内置数据类型;3.数据类型实现模型;4.简单数值类型的对象化;5.Prototype继承6. .......

    JavaScript 面向对象编程详细讲解文档

    原型是理解继承概念的关键, 我们将会教你如何建立原型, 如何检测一个对象是否是另外一个对象的原型, 及其 JavaScript 的模型与Java 面向对象编程之间的区别。我们同样会向你展示如何检测对象所包含的各种属性的方法...

    JavaScript语言特性

    这篇文章将带您探究JavaScript的一些特性,看看这些特性如何让它如此具有吸引力...灵活的对象模型:JavaScript的对象模型使用一种相对不常见的方式进行继承——称为原型——而不是Java语言中更常见的基于类的对象模型。

    JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)

    主要介绍了JavaScript继承基础讲解,原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承,需要的朋友可以参考下

    JavaScript详解(第2版)

     10.1 JavaScript及浏览器对象模型   10.1.1 navigator对象的使用   10.1.2 window对象的使用   10.1.3 创建定时事件   10.1.4 Frame的使用   10.1.5 location对象   10.1.6 history对象   ...

    深入理解JavaScript系列(6) 强大的原型和原型链

    前言 JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型。 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大。实现传统的类继承模型是很简单,但是实现 ...

    Class.Model.js:118行实现的一个简单的Javascript的对象模型

    118行实现的一个简单的Javascript的对象模型 这个文件中定义了类模型中类似于其他面向对象语言中的Object类。 如何新建类 作为基类,类的定义使用 var NewClass = Class.new(); 来进行定义。 通过以上方式定义的类...

    JavaScript语言精粹

    不幸的是,这些好想法(比如函数、弱类型、动态对象和一个富有表现力的对象字面量表示法)与那些不好的甚至明显很糟糕的想法(比如基于全局变量的编程模型)混合在了一起。 Java小应用程序(Java applets)失败后,...

    【JavaScript核心技术卷】JS的逻辑内存模型

    文章目录JavaScript的逻辑内存模型一、面向对象的三要素二、JavaScript的逻辑内存模型三、JavaScript的对象与Java的实例四、window对象的内存逻辑...函数的内存逻辑模型七、JavaScript的类继承八、JavaScript的对象与类...

    关于JavaScript的面向对象和继承有利新手学习

    原文链接Objects and Inheritance in Javascript 虽然一些Javascript用户可能永远也不需要知道原型或面向对象语言的性质,但是那些来自传统面向对象的语言的开发者使用的时候会发现JavaScript的继承模型非常的奇怪。...

    javascript的经典解析

    很多的javascript的继承关系,以及对模型的介绍

    Javascript

    《JavaScript:The Good Parts(影印版)》一书中,Crockford深度分析了一堆好的意图和盲目的错误,为你提供了所有JavaScript的地道优良部分的细节,包括:·语法·继承·方法;·对象·数组·风格;·函数·正则表达式...

    JavaScript

    《JavaScript:The Good Parts(影印版)》一书中,Crockford深度分析了一堆好的意图和盲目的错误,为你提供了所有JavaScript的地道优良部分的细节,包括:·语法·继承·方法;·对象·数组·风格;·函数·正则表达式...

    javascript

    《JavaScript:The Good Parts(影印版)》一书中,Crockford深度分析了一堆好的意图和盲目的错误,为你提供了所有JavaScript的地道优良部分的细节,包括:·语法·继承·方法;·对象·数组·风格;·函数·正则表达式...

    JavaScript完全自学宝典 源代码

    示例描述:介绍JavaScript文档对象模型。 5.1.html 使用DOM获取各级别节点。 5.2.html 使用DOM获取body元素。 5.3.html 获取元素的子节点。 5.4.html 改变div的内容。 5.5.html 获取表格第1行。...

    源文件程序天下JAVASCRIPT实例自学手册

    4.1.3 面向对象编程:继承 4.1.4 面向对象编程:封装 4.1.5 面向对象编程:多态 4.1.6 基于对象编程 4.2 JavaScript对象的生成 4.2.1 HTML文档结构 4.2.2 DOM框架 4.2.3 顶级对象之间的关系 4.2.4 浏览器载入文档时...

Global site tag (gtag.js) - Google Analytics