欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

ExtJs与JavaScript的call方法

发布时间:2025/4/16 61 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ExtJs与JavaScript的call方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
之前在教学视频有看过javascript的call。这个方法在ExtJs中是很常用的。

  以前在搞ExtJs的时候总是忽略initComponent里面的一句代码,如下所示。今天在看其他人代码的时候发现调用的函数和自己想像的不一样。所以认真看了一下代码,再结合之前js关于call的笔记。知道了其中的原因

Son.superclass.initComponent.call(this);

这里的call就是调用"Son"父类的initComponent函数,并把this传进去,这个this是Son的实例对象。

下面用一个js代码解释一下这个call 是怎样的

function Dog(name){this.name = name; } function test(){alert(this.name); } var dog = new Dog('lil'); test.call(dog);//这句话相当于dog.test();所以test()里面的this是dog,即this.name是dog.name,即弹出'lil'

如上面代码所示,test.call(dog)等价于dog.test();

下面举ExtJs代码的例子

Son = Ext.extend(Father,{initComponent : function() {       Son.superclass.initComponent.call(this);//这里调用父类的initComponent方法,即Father的initComponent方法,并把this,Son的实例对象做为参数传过去 },test : function() {alert('test in Son');} }Father = Ext.extend(Ext.Panel,{initComponent : function() {       Father.superclass.initComponent.call(this);this.test();//这里的this是Son的实例对象,相当于Son son = new Son();son.test(); //所以调用的是子类的test方法而不是父类的test方法,我之前以为是调用父类的test方法 },test : function() {alert('test in Father'); } }

 

 

 

转载于:https://www.cnblogs.com/baron89/archive/2012/09/21/2696659.html

总结

以上是生活随笔为你收集整理的ExtJs与JavaScript的call方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。