Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谁能给我解释一下这个代码是什么意思吗?_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 谁能给我解释一下这个代码是什么意思吗?

Javascript 谁能给我解释一下这个代码是什么意思吗?,javascript,angular,typescript,Javascript,Angular,Typescript,代码如下: 说明:这是角度插值 `{{ product.getAcceptedBid().description }}` product是我的product类类型属性,其中有一个名为getAcceptedBid的方法和一个名为description的属性! 同时getAcceptedBid是Bid类的类型,其中有一个名为description的属性! 这个描述到底是做什么的?它指的是哪一个?投标类别或产品类别!? 除此之外,它还有什么作用? 我知道product.getAcceptedBid正

代码如下: 说明:这是角度插值

`{{ product.getAcceptedBid().description }}`
product是我的product类类型属性,其中有一个名为getAcceptedBid的方法和一个名为description的属性! 同时getAcceptedBid是Bid类的类型,其中有一个名为description的属性! 这个描述到底是做什么的?它指的是哪一个?投标类别或产品类别!? 除此之外,它还有什么作用?
我知道product.getAcceptedBid正在调用getAcceptedBid方法,但问题出在.description部分!我不明白

在JavaScript和TypeScript以及许多其他面向对象编程语言中,多个。同一表达式上的访问器按从左到右的顺序进行计算,每个访问器都基于上一个结果

对于您的示例,这意味着.description是根据product.getAcceptedBid表达式的结果计算的,因此这就是要计算的投标描述

注意:这真的是纯JS/TS,这里的角度插值没有什么特别之处

这个描述到底是做什么的

它获取对象上名为description的属性的值。

考虑类产品和出价

如您所述,getAcceptedBid是类Product的一个方法,而description是类description的一个属性

这意味着产品实例,即使用新产品创建的对象将具有一个方法getAcceptedBid,您可以使用Product.getAcceptedBid调用该方法。这个方法有什么作用?我们看看它的身体

  public getAcceptedBid (): Bid {
    return new Bid()
  }
此方法创建类Bid的实例,并返回它。因此,当您执行product.getAcceptedBid时,实际上会得到一个Bid实例

现在,这个新创建的bid是bid的一个实例,它有一个名为description的属性。例如,您可以使用console.log来检查它的内部内容

console.log(bid.description)
您所拥有的只是所有这些的一个简短版本,在一行中,加上您已经有了某个地方的产品实例,因此无需创建它

product.getAcceptedBid().description
您可以想象额外的括号,这可能会使它更清晰:

( product.getAcceptedBid() ).description
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\                          /
  this is instance of Bid,
  like { description: 'foo' } 

简而言之:1。访问产品对象。2.然后通过调用函数获取acceptedBid值。3.获取2中接收对象的description属性


因此,您将在HTML的UI上直观地看到描述值。

这显然意味着getAcceptedBid方法返回一个带有键名“description”的值列表。它将返回描述值。是!!现在我明白了!我很困惑,不知道到底发生了什么!谢谢
product.getAcceptedBid().description
( product.getAcceptedBid() ).description
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\                          /
  this is instance of Bid,
  like { description: 'foo' }