Ext核心代码分析之Function.createDelegate

简介: 前一段一直在用Ext,可是在扩展的时候总是遇到问题,索性看Ext的源码,但是发现有很多createDelegate这个方法、一直不解,最近经高人点播,了解一二。 所属类:Function createDelegate( [Object obj], [Array args], [Boolean/Number appendArgs] ) :这个函数的目的是创建委托。
前一段一直在用Ext,可是在扩展的时候总是遇到问题,索性看Ext的源码,但是发现有很多createDelegate这个方法、一直不解,最近经高人点播,了解一二。
所属类:Function
createDelegate( [Object obj], [Array args], [Boolean/Number appendArgs] ) :这个函数的目的是创建委托。
功能:什么都不多说了。看例子
img_405b18b4b6584ae338e0f6ecaf736533.gif img_1c53668bcee393edac0d7b3b3daff1ae.gif Ext.onReady( function () img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif {   
img_33d02437d135341f0800e3d415312ae8.gifExt.QuickTips.init()   
img_33d02437d135341f0800e3d415312ae8.gif
var myclass=new Object();   
img_33d02437d135341f0800e3d415312ae8.gif
//myclass并没有alert方法,我们也不打算为它写一个alert方法   
img_33d02437d135341f0800e3d415312ae8.gif//
我们希望它和window.alert有一样的行为,所以我们委托window来做   
img_33d02437d135341f0800e3d415312ae8.gif
myclass.alert=window.alert.createDelegate(window);   
img_33d02437d135341f0800e3d415312ae8.gif
//我们还希望他有个更漂亮的show方法和Ext.MessageBox的show功能一样   
img_33d02437d135341f0800e3d415312ae8.gif//
所以我们又得委托给Ext.MessageBox来做这事了   
img_33d02437d135341f0800e3d415312ae8.gif
myclass.show=Ext.MessageBox.show.createDelegate(Ext.MessageBox);   
img_33d02437d135341f0800e3d415312ae8.gif
//我们的myclass也有alert和show方法了   
img_33d02437d135341f0800e3d415312ae8.gif
myclass.alert('alert1');   
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gifmyclass.show(
img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif{title:'title',msg:'message'});   
img_05dd8d549cff04457a6366b0a7c9352a.gif}
);  
原来就这么简单。
==================================================
createDelegate更大的用处是在于指定Function执行的作用域
简单的说就是指定Function中this所指代的对象
相关文章
|
JavaScript 前端开发 HTML5
Ext 4 概述(三)之Env命名空间 & 语言增强包 & Ext.Function
Env命名空间 提供浏览器和操作系统的相关信息,还有告诉我们现代浏览器提供了什么功能。 Ext.env.Browser 该类提供了全部浏览器的元信息(名称、引擎、版本、是否 Strict 模式等等。
938 0
EXT核心API详解(二)-Array/Date/Function/Number/String
Array类indexOf( Object o ) : Numberobject是否在数组中,找不到返回-1;找到返回位置remove( Object o ) : Array从数组中删除指定的对象object,如果找不到object则数组无变化Number类constrain( Number min...
|
8月前
|
人工智能 Python
083_类_对象_成员方法_method_函数_function_isinstance
本内容主要讲解Python中的数据类型与面向对象基础。回顾了变量类型(如字符串`str`和整型`int`)及其相互转换,探讨了加法在不同类型中的表现。通过超市商品分类比喻,引出“类型”概念,并深入解析类(class)与对象(object)的关系,例如具体橘子是橘子类的实例。还介绍了`isinstance`函数判断类型、`type`与`help`探索类型属性,以及`str`和`int`的不同方法。最终总结类是抽象类型,对象是其实例,不同类型的对象有独特运算和方法,为后续学习埋下伏笔。
184 7
083_类_对象_成员方法_method_函数_function_isinstance
|
8月前
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
226 17
|
8月前
|
人工智能 Python
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
227 11
|
JavaScript
箭头函数与普通函数(function)的区别
箭头函数是ES6引入的新特性,与传统函数相比,它有更简洁的语法,且没有自己的this、arguments、super或new.target绑定,而是继承自外层作用域。箭头函数不适用于构造函数,不能使用new关键字调用。
|
数据可视化 开发者 索引
详解Wireshark LUA插件函数:function p_myproto.dissector(buffer, pinfo, tree)
在 Wireshark 中,LUA 插件通过 `function p_myproto.dissector(buffer, pinfo, tree)` 扩展协议解析能力,解析自定义应用层协议。参数 `buffer` 是 `PacketBuffer` 类型,表示原始数据包内容;`pinfo` 是 `ProtoInfo` 类型,包含数据包元信息(如 IP 地址、协议类型等);`tree` 是
679 1
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
171 0

热门文章

最新文章