ckeditor代码中有几个核心的内容:

1. (function(){})();

2. prototype new 配合,继承属性方法

3. a.event.implementOn() 公共属性扩充

4. e.extend / a.tools.extend 自由扩充

5. a.on

6. j.add


1.(function(){})();

(function(){

//要运行的程序

})();

如此写法,能起到作用域作用;定义在中间的变量作用域被固定在这里,不会造成前后定义冲突。

定义时用var开头,作用域就在(function(){})();里了;如果没有var开头,作用域就超出,则像是全局变量了

只要加了var,即便与外界的变量重名也不会影响外界的变量。function F(){}定义,作用域也是在里面。F = function(){}则是全局了。


2.prototype new 配合,继承属性方法

这个是继承prototype的一个方法。

比如:

A = function(){}; //此处必须定义成函数
A.prototype = { //哈希
 x1 : function(){alert(1)},
 x2 : function(){alert(2)} 
};
//A.x1(); //此处不起作用
B = new A();
B.x1(); //起作用

再看一例:

A = function(){};
A.prototype = {
 x1 : function(){alert(1)},
 x2 : function(){alert(2)} 
};
A.x3 = function(){alert(3)};
A.x3(); //此处起作用
B = new A();
//B.x3(); //此处不起作用

prototype new 配合继承下来的只是A.prototype 下的内容。

另外说明:

当A、B都是一个Object类型,B = A;此时修改B下的属性方法,A也是会跟着修改的;

ckeditor里常有这样复值 e = a.tools; 此时扩充e, a.tools也是跟着修改,他们是绑在一起的;

但是用prototype new来继承的是全部独立的

简单的说:用new实例化后,prototype才能被继承下来


转载于:https://www.cnblogs.com/8kweb/archive/2011/11/04/2235264.html

ckeditor 框架分析 几个核心“人物”相关推荐

  1. LCD 设备驱动框架分析及核心结构

    Linux 下很多东西都是和结构体相关,举个例子,时钟大家都知道吧,Linux 下对应时钟的东西就有好几个结构体,所以你要是想明白Linux 下那些东西,对结构体要有所了解,LCD 是基础的驱动设备, ...

  2. java连接linux服务器执行shell命令(框架分析+推荐)

    java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...

  3. Linux USB驱动框架分析 【转】

    转自:http://blog.chinaunix.net/uid-11848011-id-96188.html 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结 ...

  4. usb serial port 驱动_tty初探 — uart驱动框架分析

    写在前面: 我们没有讲UART驱动,不过我们认为,只要系统学习了第2期,应该具备分析UART驱动的能力,小编做答疑几年以来,陆陆续续有不少人问到UART驱动怎么写,所以今天就分享一篇深度长文(1700 ...

  5. jquery框架分析-构造jquery对象初步

    这是一些分析jquery框架的文字 针对jquery 1.3.2版本 面向的读者应具备以下要求 1.非常熟悉HTML 2.非常熟悉javascript语法知识 3.熟悉javascript面向对象方面 ...

  6. Linux PCI驱动框架分析:(Peripheral Component Interconnect,外部设备互联)

    <DPDK 20.05 | rte_pci_bus思维导图 | 第一版> <linux系统下:IO端口,内存,PCI总线 的 读写(I/O)操作> <Linux指令:ls ...

  7. 【backtrader源码解析52】indicators部分代码解读(枯燥,仅供参考,源代码解析结束,后面会增加一个backtrader框架分析)

    指标类里面有很多不同的指标,如果对如何使用指标做策略感兴趣的话,可以考虑阅读下相关的源码和指标的用法,就仅仅指标的源代码而言,似乎没有什么可讲的.另外,关于backtrader源代码的注释,放到网站上 ...

  8. 《迅雷链精品课》第三课:区块链主流框架分析

    上一节课我们学习了区块链的技术架构,系统地分析了区块链平台的6个层次:数据层.网络层.共识层.合约层.应用层.接口层.这节课我们将结合实际看看现在主流区块链项目的技术架构:思考我们在设计具体的业务架构 ...

  9. iio子系统框架分析

    学习目的 iio子系统主要提供对ADC.DAC相关的设备驱动框架.面向的设备包括: 1.ADC芯片:2.DAC芯片:3.温度传感器:4.光感器:5.陀螺仪:6.加速度传感器:7.CDCs:​8.IMU ...

最新文章

  1. 一文搞懂 ThreadLocal 原理
  2. ARM NEON 优化
  3. Unknown initial character set index '255' received from server.
  4. java数据类型_Java 变量、表达式和数据类型详解
  5. FZU - 2218 Simple String Problem(状压dp)
  6. 浅谈HTTP中Get与Post的区别[转 hyddd]
  7. Babel下的ES6兼容性与规范
  8. C++ Copy Elision
  9. 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
  10. 组网技术--路由与交换--第三章
  11. 无标度网络的C++代码实现
  12. 服务器如何推送消息到app,App中如何实现消息推送?
  13. 2017公共DNS服务器评估报告——公共DNS推荐(摘录)
  14. VC++实现内存映射文件(附源码)
  15. macbook卡在进度条开不了机_解决MacBook Pro开机卡死在进度条无反应,进不去桌面问题...
  16. 百度地图自定义坐标标识覆盖物,随地图缩放偏移解决办法
  17. scrapy的分页(翻页处理)
  18. 我是小交易所老板,我现在很慌
  19. Linux命令 rm -rf报错 mv无效选项 --‘r‘
  20. 嵌入式软件开发培训笔记——java第五天(API——math/string/集合/日期时间以及java线程)

热门文章

  1. gitlab 修改HTTP连接方式中的IP和端口
  2. 操作系统02进程管理Process_Description_and_Control
  3. HBase 基本Java API
  4. samba登陆密码不正确
  5. 程序员的春天来了,赏花去!说走就走
  6. [连载]《C#通讯(串口和网络)框架的设计与实现》- 13.中英文版本切换设计
  7. Android版添加phonegap--websocket客户端插件教程
  8. cdoj 1150 排名表 拓扑排序
  9. fatal error C1083:无法打开包括文件:“stdint.h”: No such file or directory解决方案
  10. 墨刀原型制作 位置选择_原型制作不再是可选的