class Data {
private var $ op:String;
private var $ data:Object;
function Data() {
$ op = "x,y,z,a,b,c";
$ data = new Object();
}
function clone() {
var copy:Data = new Data();
for (var i in this.$ data) {
copy.$ data[i] = this.$ data[i];
}
return copy;
}
}
-----------------------------------发现--------------------------------------------------------------------------
var d:Data = new Data();
trace(d.$ op) //报错:该成员为私有成员,无法访问
var d = new Data();
trace(d.$ op) //不报错,d.$ op的内容可以任意读写-_-!!!
var d = new Data();
trace(d instanceof Data) //返回true -_-!!!
-----------------------------------问题--------------------------------------------------------------------------
clone方法里面 var copy:Data = new Data(); 这句的类型申明和构造函数名可不可以用其他代替?
因为一旦修改了类名,这里也要改,或者有了子类的话clone方法就必须复写,不能直接继承这个clone
-----------------------------------继续测试--------------------------------------------------------------------------
将前面测试发布出的swf文件load到MC里,再trace(MC.d.$ op),又可以访问了.
这下我才想起来在什么地方看到过,讲的是
flash只在编译时期检查 私有公有
运行时期就不区分了.... -_-!!!...........
回复Comments
作者:
{commentrecontent}