是否保证Array.toString()保持原样在ActionScript 3中?

Tim*_*Tim 0 arrays actionscript-3 stringification future-proof

Array.toString()向用户显示输出是否正常,或者在未来版本的ActionScript 3或其他编译器中是否可能更改字符串格式?

Sea*_*ara 6

这是一段摘录,描述了ECMA-262中的 Array.toString ,ActionScript 3非常接近:

15.4.4.2

Array.prototype.toString()调用toString方法时,将执行以下步骤:
1.让数组成为在此值上调用ToObject的结果.
2.让func成为使用参数"join"调用数组的[[Get]]内部方法的结果.
3.如果IsCallable(func)为false,则让func成为标准的内置方法Object.prototype.toString(15.2.4.2).
4.返回调用func提供数组的[[Call]]内部方法的结果作为此值和空参数列表.

和Array.join:

15.4.4.5

Array.prototype.join(separator)数组的元素被转换为字符串,然后连接这些字符串,由分隔符的出现分隔.如果未提供分隔符,则使用单个逗号作为分隔符.join方法接受一个参数separator,并执行以下步骤:
1.令O为调用ToObject的结果,将此值作为参数传递.
2.让lenVal成为使用参数"length"调用O的[[Get]]内部方法的结果.
3.让len成为ToUint32(lenVal).
4.如果未定义分隔符,则让分隔符为单字符串",".
5.让sep为ToString(分隔符).
6.如果len为零,则返回空字符串.
7.让element0成为使用参数"0"调用O的[[Get]]内部方法的结果.
8.如果element0未定义或为null,则令R为空字符串; 否则,设R为ToString(element0).
9.设k为1.
10.重复,k <len
a.设S是连接R和sep产生的String值.
湾 令element为使用参数ToString(k)调用O的[[Get]]内部方法的结果.
C.如果element未定义或为null,则接下来是空字符串; 否则,让接下来是ToString(元素).
d.令R为串联S和下一个产生的字符串值.
即 将k增加1.
11.返回R.

因此,默认行为定义非常明确,并且不会更改.