aardio名字空间库的扩展方法(四)

前面三篇讲的是同一种扩展方法,比照类库,我们可以称之为直接继承的扩展方法。本人推荐这种方法,简单,好理解。其实,名字空间库也有“间接继承”的扩展方法,也就是利用元表继承,在此展示一下,仅作为参考。在spaceB中这样写:

import test.spaceA;namespace test.spaceB{//直接写要扩展的内容vB="spaceA扩展出来的成员变量";funcB=function(){..win.msgbox(vB,"spaceA扩展出来的成员函数");} 	
}
//名字空间也是表,我们为它设置一个元表来实现继承
test.spaceB@={_get=..test.spaceA;//spaceB没有的成员到spaceA中去找}

测试一下,能够正常调用:

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add()
/*}}*/import test.spaceB;//导入刚刚建立的新库
test.spaceB.funcA();//调用基库的函数
test.spaceB.funcB();//调用我们扩展出来的函数winform.show();
win.loopMessage();

 

 这时调用的owner也是统一的,是test.spaceB。但是占用了_get元方法,所以不太推荐。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部