ckeditor 框架分析 几个核心“人物”
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 框架分析 几个核心“人物”相关推荐
- LCD 设备驱动框架分析及核心结构
Linux 下很多东西都是和结构体相关,举个例子,时钟大家都知道吧,Linux 下对应时钟的东西就有好几个结构体,所以你要是想明白Linux 下那些东西,对结构体要有所了解,LCD 是基础的驱动设备, ...
- java连接linux服务器执行shell命令(框架分析+推荐)
java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...
- Linux USB驱动框架分析 【转】
转自:http://blog.chinaunix.net/uid-11848011-id-96188.html 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结 ...
- usb serial port 驱动_tty初探 — uart驱动框架分析
写在前面: 我们没有讲UART驱动,不过我们认为,只要系统学习了第2期,应该具备分析UART驱动的能力,小编做答疑几年以来,陆陆续续有不少人问到UART驱动怎么写,所以今天就分享一篇深度长文(1700 ...
- jquery框架分析-构造jquery对象初步
这是一些分析jquery框架的文字 针对jquery 1.3.2版本 面向的读者应具备以下要求 1.非常熟悉HTML 2.非常熟悉javascript语法知识 3.熟悉javascript面向对象方面 ...
- Linux PCI驱动框架分析:(Peripheral Component Interconnect,外部设备互联)
<DPDK 20.05 | rte_pci_bus思维导图 | 第一版> <linux系统下:IO端口,内存,PCI总线 的 读写(I/O)操作> <Linux指令:ls ...
- 【backtrader源码解析52】indicators部分代码解读(枯燥,仅供参考,源代码解析结束,后面会增加一个backtrader框架分析)
指标类里面有很多不同的指标,如果对如何使用指标做策略感兴趣的话,可以考虑阅读下相关的源码和指标的用法,就仅仅指标的源代码而言,似乎没有什么可讲的.另外,关于backtrader源代码的注释,放到网站上 ...
- 《迅雷链精品课》第三课:区块链主流框架分析
上一节课我们学习了区块链的技术架构,系统地分析了区块链平台的6个层次:数据层.网络层.共识层.合约层.应用层.接口层.这节课我们将结合实际看看现在主流区块链项目的技术架构:思考我们在设计具体的业务架构 ...
- iio子系统框架分析
学习目的 iio子系统主要提供对ADC.DAC相关的设备驱动框架.面向的设备包括: 1.ADC芯片:2.DAC芯片:3.温度传感器:4.光感器:5.陀螺仪:6.加速度传感器:7.CDCs:8.IMU ...
最新文章
- 一文搞懂 ThreadLocal 原理
- ARM NEON 优化
- Unknown initial character set index '255' received from server.
- java数据类型_Java 变量、表达式和数据类型详解
- FZU - 2218 Simple String Problem(状压dp)
- 浅谈HTTP中Get与Post的区别[转 hyddd]
- Babel下的ES6兼容性与规范
- C++ Copy Elision
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
- 组网技术--路由与交换--第三章
- 无标度网络的C++代码实现
- 服务器如何推送消息到app,App中如何实现消息推送?
- 2017公共DNS服务器评估报告——公共DNS推荐(摘录)
- VC++实现内存映射文件(附源码)
- macbook卡在进度条开不了机_解决MacBook Pro开机卡死在进度条无反应,进不去桌面问题...
- 百度地图自定义坐标标识覆盖物,随地图缩放偏移解决办法
- scrapy的分页(翻页处理)
- 我是小交易所老板,我现在很慌
- Linux命令 rm -rf报错 mv无效选项 --‘r‘
- 嵌入式软件开发培训笔记——java第五天(API——math/string/集合/日期时间以及java线程)
热门文章
- gitlab 修改HTTP连接方式中的IP和端口
- 操作系统02进程管理Process_Description_and_Control
- HBase 基本Java API
- samba登陆密码不正确
- 程序员的春天来了,赏花去!说走就走
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 13.中英文版本切换设计
- Android版添加phonegap--websocket客户端插件教程
- cdoj 1150 排名表 拓扑排序
- fatal error C1083:无法打开包括文件:“stdint.h”: No such file or directory解决方案
- 墨刀原型制作 位置选择_原型制作不再是可选的