`
mayi_hetu
  • 浏览: 15573 次
  • 性别: 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中的继承之类继承_.docx

    与传统的面向对象语言如Java或C#不同,JavaScript的继承模型基于原型,这使得它的继承机制既灵活又强大。本文将详细介绍JavaScript中的类继承概念,包括基本原理、实现方式以及一些高级用法。 #### 二、继承概述 ...

    JavaScript对象模型-执行模型

    JavaScript对象模型(Object Model)和执行模型是理解...在实际开发中,利用原型链实现继承、通过构造函数和原型方法创建对象、以及掌握执行模型中的上下文切换和事件循环机制,都是提升JavaScript编程能力的重要步骤。

    浅析Javascript原型继承 推荐第1/2页

    在深入探讨JavaScript的原型继承之前,首先要明确的是JavaScript中并没有类似其他编程语言中的类继承的概念。虽然有传言JavaScript 2.0将加入类继承...掌握原型继承对于深入理解JavaScript对象模型和设计模式至关重要。

    浅析javascript原型继承机制

    在JavaScript中,并没有直接提供类的概念,而是通过原型来实现继承。本文将深入探讨JavaScript中的原型继承机制,帮助读者理解其中的关键概念及其工作原理。 #### 二、原型与构造函数 在JavaScript中,每个函数都...

    深入浅出JavaScript对象模型

    ### 深入浅出JavaScript对象模型 #### JavaScript对象的本质 根据ECMA262规范,ECMAScript被定义为一种基于对象的语言而非传统的面向对象语言。这意味着在JavaScript中,对象被视为存储数据的一种大型数组形式,...

    javascript继承之工具函数二

    通过分析和实践`source.js`中的代码,我们可以更好地理解JavaScript的继承机制,掌握如何灵活地构建可扩展的对象模型。这不仅有助于提升我们的编程能力,也是面试中经常被问到的问题,因此深入学习和掌握这部分内容...

    由浅到深了解JavaScript类

    JavaScript 类是编程语言中用于构建面向对象模型的关键概念,它允许我们通过类来模拟现实世界中的对象和结构。在JavaScript中,类的概念并不是一开始就存在的,早期版本的JavaScript使用构造函数和原型来实现面向...

    《悟透JavaScript》之 甘露模型(新)

    《悟透JavaScript》之甘露模型(新)是关于JavaScript编程的一个深度解析,它主要探讨的是JavaScript中的核心概念和机制,尤其是围绕着“甘露模型”这一独特视角展开的。甘露模型,又称为“糖水模型”,是对...

    JavaScript 继承的实现

    JavaScript继承的实现方式多样,除了原型链之外,还有如下几种常见方式: 1. **构造函数继承**:通过调用父构造函数来初始化子对象,但不能避免方法重复。 2. **原型链继承**:通过修改子构造函数的原型使其指向父...

    javaScript对象模型与事件处理借鉴.pdf

    这些事件对象都继承自 Event 对象,Event 对象是 JavaScript 事件处理中的基本对象。 JavaScript 对象模型与事件处理是 JavaScript 编程的两个核心概念。JavaScript 对象模型描述了对象之间的层次关系,而事件处理...

    JavaScript版的TwoQueues缓存模型

    在实现TwoQueues缓存模型时,JavaScript代码主要定义了一个名为Elimination的基类,该类利用链表结构来实现LRU缓存淘汰机制。在这个基类中,定义了缓存容量(maxLength),缓存容器(container)和两个指针...

    js 实现类式继承

    类的继承使得代码复用和结构化设计变得更加容易,而模型类则可以帮助我们更好地管理和通信数据,尤其是在与服务器交互的场景下。 总结来说,JavaScript的类式继承通过`class`关键字和`extends`关键字实现,提供了...

    JavaScript甘露模型.docx

    JavaScript中的"甘露模型"实际上指的是JavaScript的原型(Prototype)机制。这个机制是JavaScript实现面向对象编程的关键之一,它允许对象之间共享属性和方法,从而有效地节省内存资源。以下是对原型模型及其相关知识...

    Javascript 类和对象的实现

    JavaScript 的对象模型允许开发者以多种方式实现类和对象,从而支持封装、继承和多态等核心 OOP 概念。本文旨在深入解析几种常见的实现类和对象的方法,并探讨它们之间的差异,以及在实际应用中如何选择合适的方法。...

    javascript闭包模型与原型模型(共31张PPT).pptx

    总之,闭包和原型模型在JavaScript中起着至关重要的作用,它们分别提供了对变量的持久访问和面向对象的继承机制。理解这两个概念对于编写高效的、可维护的JavaScript代码至关重要。在实际编程中,闭包常用于封装变量...

    JavaScript设计模式中文版第4章-继承定义.pdf

    这使得JavaScript的继承模型相对复杂,但也赋予了它极大的灵活性。 首先,我们来理解基本的类定义。在JavaScript中,函数可以作为构造函数,用来创建对象实例。例如,`function Person(name) { this.name = name; }...

    head first JavaScript源码

    DOM(文档对象模型)是HTML和XML文档的结构表示,JavaScript可以使用DOM API来动态修改网页内容,实现动态网页效果。 此外,JavaScript还有异步编程的概念,如回调函数、Promise和async/await。这些技术解决了...

Global site tag (gtag.js) - Google Analytics