当我将一个对象链接到一个对象数组时,两个对象的值是如何链接的
How are the value of two objects linked when I link an object to an array of objects?
我有一个tes
测试服务,在我的 Typescript 代码中显示了两个对象:
test: ITestView;
tests: ITestView[];
此代码检查 tes.tests
数组中的每个对象,当id
匹配时,它将数组中的一个对象分配给等于另一个对象tes.test
:
tes.tests.forEach((test: ITestRow) => {
test.current = false;
if (test.id == id) {
tes.test = test; // << Linking them somehow here
test.current = true;
}
});
稍后我这样做:
tes.test.current = false;
此代码将 tes.tests[0].current
的值设置为 false,将 tes.test.current
的值设置为 false。
当我现在这样做时:
tes.test = null;
此代码将 tes.test
的值设置为 null,但不对 tes.tests[]
数组执行任何操作。
有人可以解释为什么它不会影响tes.tests[]
数组吗?
test = foo; // test references existing object foo
tests[0] = test; // test[0] also references existing object foo
test = null; // test doesn't reference anything, but tests[0] still does
根据您的期望,您可以执行以下操作:
tests[0] = null; // tests[0] doesn't reference anything
或:
tests.splice(0,1); // removed the 1st item from the tests
// not tests array became shorter!
我认为快速简单的答案是
tes.test = null;
不会破坏它指向的对象。 tes.test
现在什么也没指出。
澄清一下,tes.test.current = false
更改这两个对象是因为它引用了tes.test
指向的对象的current
键。
tes.test = null;
上面的代码没有对 tes.tests[] 进行任何更改,因为它很简单tes.test
指向任何内容,而不是更改它指向的对象。我希望我清楚!
相关文章:
- Javascript一页滚动脚本滚动到每个点击的链接一个接一个
- Javascript:如何在不复制但链接的情况下将另一个对象 B 的方法混合到我的对象 A
- 当我将一个对象链接到一个对象数组时,两个对象的值是如何链接的
- 我需要帮助在 JsViews 模板中链接日期对象
- 如何破解LiveScript以便在html中链接一个单独的文件
- 链接的对象
- 将一个变量链接到一个对象属性
- 如何链接一个表单输出到一个谷歌融合表查询使用javascript
- 如何从URL链接一个散列链接到Javascript内容
- 如何给当前页面's链接一个禁用的外观
- 需要帮助链接一个按钮到wordpress主题自定义器的功能
- 链接返回对象Javascript
- 什么是正确的方式来链接一个按钮到谷歌地图
- 如何确保承诺链返回一个对象
- 链接一个本地函数
- 如何链接同一对象的两个回调类型增益函数
- Angular的承诺(关于一个承诺?)或者如何在$http之后链接一个.then.成功的角度
- 在链接数据对象中重复
- 如何用方法调用链接make对象
- js试图在一个特定的日期链接一个时间表