zoukankan      html  css  js  c++  java
  • Ext JS继承: 关于object, constructor和prototype

    基本知识:object没有prototype;但object有constructor;constructor是function,所以constructor有prototype。那么原型继承的核心是什么呢?就是把object的constructor的prototype的属性复制到了此object上。

    当然,实际情况要复杂得多,这里提到这些,是因为和Ext的一个方法有关:Ext.extend(parent, config);

    其中值得关注的是config。例如这么写:

    Ext.ns('Demo','Demo.Configuration');

    Demo.Configuration.Sample1 = Ext.extend(Ext.Component, {

      name : '李东东',

      otherConfig : {}

      initComponent : function() {

        otherConfig = otherConfig || {sex: 'female'};

      }

    });

    上面的name和otherConfig属性,在new完第一个Demo.Configuration.Sample1对象之后,就会出现在Demo.Configuration.Sample1.constructor.prototype的属性之中。也就是说,在new 完第一个对象之后,再new其他的对象时,将会在初始时就自动带了和第一个对象一模一样的属性名值对,这个例子里是{sex : 'female'},注意是在最初始的状态就是这个值,而不再是想当然的到initComponent中才改变的{}了。例子中给otherConfig赋值是写死的,但实际情况很可能是根据不同的条件动态赋值,这时候这个特性如果不留意,就会很坑人。

  • 相关阅读:
    结对编程的理解
    第1章 python基础
    第 3 章 前端基础之JavaScript
    第1 章 mysql数据库之简单的DDL和DML sql语句
    第 1 章 前端之html
    第 13 章 python并发编程之io模型
    第 2 章 前端基础之CSS
    第 4 章 前端基础之jquery
    第 11 章 python线程与多线程
    注册表 SAM
  • 原文地址:https://www.cnblogs.com/damnedmoon/p/1743706.html
Copyright © 2011-2022 走看看