【问题标题】:What does the term 'binding' mean in JS?JS中的“绑定”一词是什么意思?
【发布时间】:2020-09-17 11:15:50
【问题描述】:

请为我解释一下 binding 一词在 JavaScript 中的含义。我已经开始阅读“Eloquent JS”这本书,并且这个词出现了很多次。它只是意味着变量吗?以下是书中的几个例子:

  1. 所以如果你知道你感兴趣的属性叫做颜色,你说value.color。如果要提取由 binding i 中保存的值命名的属性,可以说 value[i].Property 名称是字符串。它们可以是任何字符串,但点符号仅适用于看起来像有效 binding 名称的名称。
  2. 绑定 也可以是可变的或恒定的,但这与它们的值的行为方式是分开的。即使数字值不变,您也可以使用 let 绑定通过更改 binding 指向的值来跟踪不断变化的数字。同样,虽然 const binding 到一个对象本身不能改变,并且会继续指向同一个对象,但该对象的内容可能会改变。

【问题讨论】:

标签: javascript terminology


【解决方案1】:

我已经发现了它是什么(在本书的前一章中)。这是sn-p:

程序如何保持内部状态?它是如何记住事物的?我们已经看到了如何从旧值产生新值,但这不会改变旧值,并且必须立即使用新值,否则它将再次消散。为了捕获和保存值,JavaScript 提供了一种称为绑定或变量的东西:

let caught = 5 * 5;

这是第二种说法。特殊词(关键字)let 表示这句话要定义一个绑定。它后面是绑定的名称,如果我们想立即给它一个值,可以使用= 运算符和一个表达式。

前面的语句创建了一个名为 caught 的绑定,并使用它来获取由 5 乘以 5 产生的数字。

【讨论】:

    【解决方案2】:

    绑定是一个通用术语,表示您的符号或变量指向内存中的某个位置。这也说明了 JavaScript 中的原理,即即使您使用 const 声明对象,您仍然可以操作该对象的属性。只有对对象本身的引用不能被重新定义。

    所以你不能说 myObj = {greeting: "Hello Stack Overflow"} 然后 myObj = someOtherObj。但你可以说 myObj.greeting = "Beep Boop"

    【讨论】:

    • 这是不同切线相关概念的大杂烩,但实际上并没有回答问题。
    • 大杂烩是什么意思,我直接回答了这个问题。 “请为我澄清一下 JavaScript 中的术语绑定是什么意思?”,他链接的 sn-p 还提到了这样一个事实,即可以使用 const 声明进行此绑定并且仍然可以操作属性。
    【解决方案3】:

    好的,让我澄清一下。第一个问题什么是绑定:

    1. 绑定是指向某个字面值或内存中的对象的符号、变量、常量等。

    2. 关于你的书,它说:

      const myObj = { color: blue }; // the property color is defined on this object
      myObj["color"]; // => "blue" The color property can be accessed by passing in a string
      myObj = anotherObj; // not allowed, you declared it with const
      

    引用或绑定指向内存中的对象,并且不能更改,因为您使用 const 声明了此引用。但是您可以修改内存中对象的属性。对象本身是可变的。

    任何关于绑定的进一步讨论都是关于词法作用域的讨论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 2013-03-14
      • 2011-04-12
      • 2011-06-18
      • 1970-01-01
      • 2018-10-29
      • 2019-02-12
      相关资源
      最近更新 更多