通过Javascript

时间:2016-02-18 05:18:43

标签: typescript angular

既然我已经在Angular2上工作了近3个月,我遇到了一些场景让我想知道这是怎么发生的?

如果是特殊this关键字,很明显它会传递相关DOM ObjectClass的参考或实例。

但是还有一个名为ControlGroup的东西,只要它被分配给另一个变量,它也会做同样的事情。并且这两个变量都可以访问ControlGroup的相同实例。

2 个答案:

答案 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 };
}