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

ext继承中因为JavaScript数组赋值特殊性引起的一个问题

阅读更多

一个很有意思的问题

JavaScript代码 写道
//定义一个空类,没有任何东西
com.vortex.BlankClass = function (){
};

// 定义一个基类, 继承自空类,添加一个数组成员arr
com.vortex.BaseClass = Ext.extend(Ext.util.Observable, {
    arr: []
});


// 定义一个子类,继承自BaseClass,add方法, 向数组arr中添加一个1
com.vortex.SubClass1 = Ext.extend(com.vortex.BaseClass, { 
    add: function() {
        this.arr.push(1);
    }
});

// 再定义一个子类, 也继承自BaseClass,add方法, 向数组arr中添加一个2
com.vortex.SubClass2 = Ext.extend(com.vortex.BaseClass, { 
    add: function() {
        this.arr.push(2);
    }
});

function test(){
    var c1 = new com.vortex.SubClass1();
    c1.add();
    alert(c1.arr); // 这里得到的应该是1, 结果也确实是1, 没错

    var c2 = new com.vortex.SubClass2();
    c2.add();
    alert(c2.arr); // 这里得到的应该是一个2, 但是实际结果却是1,2 ,有趣的问题出现了
}

  原因分析:在extend过程中,只是将

分享到:
评论

相关推荐

    ExtJS Ext ExtJavascript Javascript

    ExtJS 是一个强大的JavaScript前端框架,专为构建富交互式的Web应用程序而设计。它提供了丰富的组件库、数据绑定、布局管理、以及强大的Ajax功能,帮助开发者创建出具有桌面级用户体验的网页应用。ExtJS 使用了Sass...

    ext继承重写

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

    Ext继承分析

    在ExtJS中,`Ext.extend()` 是一个核心的函数,用于实现类之间的继承机制。它允许你创建新的类(子类),这些类将继承另一个类(父类)的属性和方法。这个功能对于构建复杂的JavaScript应用程序至关重要,因为它提供...

    Ext继承和扩展

    在这个例子中,`MyCustomPanel`继承了`Ext.Panel`的所有属性和方法,并且我们还添加了一个新的构造函数和`customMethod`。 **二、Ext扩展** ExtJS中的"扩展"通常指的是`Ext.override()`方法,它用于给现有的类添加...

    Ext继承和扩展写的例子。

    在JavaScript的世界里,"Ext"通常指的是Ext JS,这是一个用于构建富客户端Web应用程序的JavaScript库。这个库提供了大量的UI组件和强大的数据管理功能。在这个特定的例子中,我们关注的是"Ext继承和扩展",这是Ext ...

    Ext框架JavaScript开源框架

    Ext框架JavaScript开源框架Ext框架JavaScript开源框架

    ext 继承(extend) 理解练习

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

    Ext官方中文教程(可打包下载)

    如何合理地规划一个应用程序 如何本地化ext的教程 xtype的含义 扩展Ext中的组件 扩展与插件之间的区别 扩展Ext的新手教程 Ext的类继承 从源码生成Ext 基础用法: DomQuery基础 Ext中的事件 简述模板 模板...

    Ext继承--Ext自定义组件的书写方式

    目的:该示例非常详细注释说明Ext的面向对象的编程方式,使用继承,然后重写父类的方法,以及注册自定义事件说明Ext框架是事件驱动的框架编程。 阅读对象:本中心学习Ext面向对象编程的人员 阅读条件:掌握OO的思路...

    JavaScript凌厉开发Ext详解与实践(源码)

    第12章“简单的新闻管理系统”提供了一个实际的应用场景,将前面所学知识综合运用到新闻管理系统的开发中,帮助读者巩固理论知识,提升实战能力。 综上所述,这本书全面覆盖了从基础到高级的ExtJS开发技术,结合...

    ext js javascript ext设计软件

    总的来说,EXT JS JavaScript EXT设计软件提供了一个完整的解决方案,帮助开发者用JavaScript构建高性能、响应式的企业级Web应用。通过熟练掌握EXT JS,开发者可以创建出具有专业品质的用户界面,并享受到高效的开发...

    一个简单的Ext.Window中插入图片的例子

    在Ext JS这个强大的JavaScript框架中,`Ext.Window`是一个常用组件,用于创建浮动、可弹出的窗口。在Web应用程序中,我们常常需要在这些窗口中展示各种内容,包括文字、表格、按钮,当然还有图片。本文将详细介绍...

    ext工作流javascript

    ExtJS工作流与JavaScript结合是Web应用程序开发中的一个重要领域,特别是在构建复杂的企业级应用时。ExtJS是一个强大的JavaScript库,提供了丰富的用户界面组件和数据绑定功能,而工作流则是管理和控制业务流程的一...

    ext 2 (javascript经典应用)

    EXT 2 是一个基于 JavaScript 的前端开发框架,尤其在创建富互联网应用程序(Rich Internet Applications, RIA)方面表现卓越。这个框架由 Sencha 公司开发,它提供了一套全面的组件模型,允许开发者构建功能丰富的...

    ext中播放声音

    首先,定义一个类,继承自EXTJS的`Ext.container.Container`,并在`renderTpl`配置项中添加`<audio>`标签。然后,为`<audio>`元素添加`src`属性,用于指定音频文件路径。例如: ```javascript Ext.define('...

    ext面向对象和继承

    在EXTJS中,类通常通过`Ext.extend()`方法来定义,它创建了一个新的类,并继承自指定的父类。例如: ```javascript Ext.extend(ChildClass, ParentClass, { // 子类的方法和属性 }); ``` 这里的`ChildClass`是新...

    extarray:Javascript 数组扩展

    外阵列 ##Javascript 数组扩展 向 js 数组添加了一些函数 array.min() / array.max() :返回值...array.distinct() :返回一个没有任何重复值的数组 array.findFirst(val, prop) : 返回值等于val对象/值 请随意贡献。

    EXT dojochina Ext类继承.rar

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

Global site tag (gtag.js) - Google Analytics