既然我已经在Angular2上工作了近3个月,我遇到了一些场景让我想知道这是怎么发生的?
如果是特殊this
关键字,很明显它会传递相关DOM Object
或Class
的参考或实例。
但是还有一个名为ControlGroup
的东西,只要它被分配给另一个变量,它也会做同样的事情。并且这两个变量都可以访问ControlGroup
的相同实例。
答案 0 :(得分:69)
对象和数组通过引用传递。像number,string,boolean这样的原始值按值传递。对象的引用也是一种基本类型,并且像其他基本类型一样按值传递,但它引用的对象仍然通过引用传递。
这不是Angular或TypeScript特有的,只是Javascript的工作原理。
答案 1 :(得分:0)
调整如果你知道你在做什么,可能如下:
伪代码:
foo() {
int num = 1;
bar(num);
// num is 2!!
}
bar(int arg byRef) {
arg = 2
}
打字稿:
function foo() {
let num = 1;
(() => {
const ret = bar(num) as any;
num = ret.arg;
})();
// num is 2!!
}
function bar(arg) {
arg = 2;
return { arg };
}