我有一个字符串,我想在对象中通过引用传递它。
var str:String = '';
var object:Object = {s:str};
object.s = 'test';
trace(str); // i would like this to output test but it is just blank
trace(object.s); //this has a value stored in it
这是可能的还是我在考虑这个错误?
我要做的是通过更新object.s来更新str值。我希望sting对象在对象内部而不是str的值。
我希望它能做更像这样的事情
var obj2:Object = new Object();
obj2.txt = '';
var object:Object = {s:obj2};
object.s.txt = 'test';
trace(obj2.txt); // outputs test
trace(object.s.txt); //outputs test
答案 0 :(得分:0)
当然有可能。在上面的例子中我怀疑跟踪工作正常,但由于没有值,它不显示任何内容。我不太了解actionscript,但由于它编译为javascript,因此所有对象都通过引用传递。您的示例代码实际上有两个对象,一个名为string,是一个没有赋值的字符串,另一个是一个名为s的对象,它是一个字符串。这就是为什么没有输出。
var string:String = '';
var object:Object = {s:string};
object.s = 'test';
string = object.s;
trace(string); // i would like this to output test but it is just blank
trace(object.s);
这应该显示你想看到的内容,并通过引用传递,除非actionscript强制传递值,我不相信它