【脚本文章】变量引用与变量赋值

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 的值不会因轻微错误而改变。

参考文章

浅拷贝与深拷贝

【AE脚本】值是引用传递还是值传递?

 

给TA充电
共{{data.count}}人
人已充电
AE开发脚本开发

【脚本案例】获取属性表达式的完整层级

2021-10-12 15:20:12

AE开发编程脚本开发

【事件监听】按键监听与按键表 | 键盘按键

2021-10-13 15:14:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索