JS中的引用
在JS中,如果赋值之后,修改原数据,赋值后的变量也会更改,被称为引用传递
var arr = ["a","b","c"]
var arr2 = arr
arr.pop(2) // 移除数组的最后一个元素
console.log(arr2) // 返回["a", "b"],因此arr2也变了
不更改,称为赋值传递
var arr = "abc"
var arr2 = arr
arr="bcd"
console.log(arr2) // "abc" 不随原元数据更改
通过引用传递其他(数组或对象)
通过值传递原始类型(数字、字符串、布尔值、空值、undefined)
优点
对象类可以共用一个地址,节省空间。有点像AE的复制合成
脚本中的引用
但是在AE脚本中,数组类型的值,是按值传递的,不存在引用传递
var Pos = app.project.activeItem.selectedLayers[0].position.value; // 定义一个位置数组值
使用其他引用该值,并不会“引用”赋值,而是复制了一份出去。
为什么这样?
它可能与脚本的“setValue 方法”有关。在AE脚本中,直接给value赋值并不会改变这个值,必须使用setValue方法。这样 value 的值不会因轻微错误而改变。
参考文章