`
tonynju
  • 浏览: 75996 次
  • 性别: Icon_minigender_1
  • 来自: 浙江嘉善
社区版块
存档分类
最新评论

Javascript的继承和Ext的Extend

阅读更多
Javascript的继承和Ext的Extend
Javascript中实现一个类,使用的是Construct Function和prototype
例如:
Shape = function(name,area){
    if(name != null)
        this.name = name
    if(area != null)
        this.area = area

}

Shape.prototype = {
    name:'',
    area:0

}

var shape1 = new Shape('shape_1',20)


集成实现Rectangle
方式一:
Rectangle = function(){

}
//此时将Shape的对象作为Rectangle的prototype
Rectangle.prototype = new Shape();

方式二: 不调用Shape的构造函数

Rectangle = function(){

}

F = function(){}
F.prototype = Shape.prototype;
Rectangle.prototype = new F();


方式三:Ext的方式,接近于第二种, 同时 Rectangle.superclass = Shape.prototype,以便于在构造函数中使用
Rectangle = function(){
    Rectangle.superclass.constructor.call(this,...
}

Ext.extend(Rectangle, Shape)

分享到:
评论
2 楼 tonynju 2009-08-08  
Rectangle.prototype = Shape.prototype;
如果直接这样写的话,就不再是继承了Shape
使用Rectangle新建的对象,使用instanceof方法就会发现不是Shape的类型

xlongbuilder 写道
F = function(){}
F.prototype = Shape.prototype;
Rectangle.prototype = new F();

为什么 不直接这样 其中有什么区别 是这样么 子类的prototype不会影响父类的?
Rectangle.prototype = Shape.prototype;

1 楼 xlongbuilder 2009-08-03  
F = function(){}
F.prototype = Shape.prototype;
Rectangle.prototype = new F();

为什么 不直接这样 其中有什么区别 是这样么 子类的prototype不会影响父类的?
Rectangle.prototype = Shape.prototype;

相关推荐

    ext 继承(extend) 理解练习

    总的来说,`ext继承`(`extend`)是JavaScript中实现继承的一种方式,它通过复制属性和方法以及调整原型链来让一个类能够继承另一个类的特性。这种技术在构建复杂应用时尤其有用,因为它促进了代码的模块化和重用。...

    Ext继承和扩展

    `Ext`是一个流行的JavaScript库,它提供了丰富的UI组件和强大的数据管理工具,同时也引入了一套完整的面向对象系统,其中包括类(Class)和继承(Inheritance)的概念。本文将深入探讨`Ext`中的继承和扩展机制。 在...

    ext继承重写

    在EXT JS这个强大的JavaScript框架中,"继承"和"重写"是两个核心概念,它们在构建可复用和模块化的应用程序中起着至关重要的作用。EXT JS采用面向对象的编程方式,允许开发者通过继承机制来扩展类的功能,同时通过...

    ext面向对象和继承

    EXTJS中的继承是通过`Ext.extend()`或`Ext.createByAlias()`实现的。继承允许子类重写或扩展父类的方法和属性。例如,我们可以创建一个新的按钮类,继承自EXTJS的`Ext.button.Button`: ```javascript MyButton = ...

    Ext继承分析

    当我们调用`Ext.extend(C, S, {s1: "by c overload"})`时,`C`就继承了`S`的所有原型属性,包括`s`和`s1`。然而,`s1`被子类中指定的对象属性覆盖,所以当我们访问`c.s1`时,输出的是"by c overload",而不是原始的...

    ExtJS的extend(Ext Designer的使用)

    总结来说,`extend`是Ext JS中构建组件和类继承结构的核心机制,而Ext Designer通过提供可视化界面,使开发者能够更加直观地理解和利用这一机制。通过`extend`,我们可以创建出符合特定需求的自定义组件,同时保持...

    Ext继承和扩展写的例子。

    总结来说,"Ext继承和扩展写的例子"这个主题,涉及到的核心知识点包括JavaScript的面向对象编程,Ext JS库的使用,特别是其组件模型和继承机制。通过学习这个例子,开发者可以深入理解如何利用这些特性创建可复用、...

    无废话ExtJs 系列教程十八[继承:Extend]

    继承在ExtJS中的实现主要基于`Ext.extend()`方法,这个方法是ExtJS提供的一个静态方法,它允许一个类(子类)继承另一个类(父类)的所有属性和方法。通过`Ext.extend()`,我们可以定义新的类,同时保留和扩展已存在...

    Ext一些方法的重写

    除了`Ext.extend()`,`Ext`库还提供了一些其他与继承和方法重写相关的工具,比如`mixins`(混入)机制,它允许一个类“借用”另一个类的属性和方法。通过`Ext.mixin`,我们可以创建可复用的代码模块,然后在多个类...

    EXT dojochina Ext类静态方法.rar

    EXT dojochina Ext类静态方法是一个关于EXT框架在JavaScript中的使用的主题,主要聚焦于Ext类的静态方法。EXT是一个强大的前端开发框架,由Sencha公司开发,它提供了丰富的组件库,用于构建复杂的Web应用程序。在EXT...

    EXT dojochina Ext类继承.rar

    EXT dojochina是一个关于JavaScript库EXTJS的讨论社区,EXTJS是一个强大的前端开发框架,主要用于构建富客户端应用。在EXTJS中,类继承是其核心特性之一,它允许开发者创建复杂的组件和应用架构,通过继承来重用代码...

    ext api,ext 学习笔记,SWFUpload_多文件上传及部分工具

    EXT的extend函数是实现类继承的关键,通过它,可以创建新的组件类并继承已有组件的属性和方法。JavaScript对象的理解则有助于更好地利用EXT的动态性。 "spket-1.6.11.jar"可能是一个开发工具,如Spket IDE,它提供...

    Extjs中使用extend(js继承) 的代码

    在Ext JS框架中,Ext.extend是用来实现JavaScript继承的一种方法。Ext JS是一个用于开发富交互式的Web应用程序的框架,它封装了复杂的DOM操作,提供了一套丰富的UI组件。在使用Ext JS开发时,使用Ext.extend可以创建...

    Ext.Store的获取方法

    但在使用`extend`进行类继承时,可能会将Store的定义放在一个新的组件内,例如一个ComboBox: ```javascript Leangle.form.combo.ColorComboBox = Ext.extend(Leangle.form.BaseComboBox, { // ComboBox ...

    EXT文档 不下后悔.doc

    EXT文档对于理解和使用EXT框架至关重要,它提供了EXT的组件结构、配置、资源管理和类继承等核心概念的详细说明。开发者可以借助这些知识创建高效、美观且功能丰富的Web应用。在开发过程中,根据实际情况选择适当的库...

    Javascript Object.extend

    JavaScript中的`Object.extend`是一个用于实现...在实际开发中,虽然现代JavaScript推荐使用`class`语法和`class extends`来实现继承,但`Object.extend`在早期的JavaScript代码中仍然常见,并且在某些场景下仍然有用。

    EXT dojochina Ext类构造方法.rar

    EXT dojochina是一个关于JavaScript库Ext JS的讨论平台,其中包含了丰富的开发资源和技术讨论。在本压缩包“EXT dojochina Ext类构造方法.rar”中,主要聚焦于Ext类的构造方法这一核心概念。Ext JS是一个强大的前端...

Global site tag (gtag.js) - Google Analytics