'值'关键字实际上在JavaScript中工作,我们可以同时获得一个值并分配它吗

How does the 'value' keyword actually work in JavaScript, can we get a value and assign it at the same time?

本文关键字:分配 一个 JavaScript 实际上 关键字 工作 我们      更新时间:2023-09-26

我花了很多时间来理解这一点,但无法得到任何与我的问题具体相关的答案,我想问的是,"value"关键字如何返回文本框或任何其他元素的值,我们可以同时分配。

我们不使用括号,所以根据我的理解,它不是一个函数。

我正在尝试创建一个具有属性的对象,让我们称之为"val",它将返回值,并且无法通过使用等于运算符来分配新值。

硬编码的值是有效的,但是如何动态地获取它呢?我会创建一个函数,每次插入值时都会激发它,并将其分配给属性吗?或者它将如何工作?因为我不能清楚地使它成为一个返回值的函数,因为那时我无法分配它。

var searchBar = {
   element : document.getElementById('memSearchInput'),
   val : document.getElementById('memSearchInput').value.trim(),
 }

这显然是一项艰巨的工作。

我没有发布太多问题,所以如果这不清楚,很抱歉。

这里的value不是"关键字",而是getElementById调用返回的DOM节点的属性。由于您似乎正在那里获取一个HTML <input>元素(它恰好是一个名为HTMLInputElement的DOM节点对象),您可以在该对象的描述中找到关于其value产权的信息:

控件中的当前值。

注意:对于某些输入类型,返回的值可能与用户输入的值不匹配。例如,如果用户在<input type="number">中输入非数字值,则返回的值可能是空字符串。

到目前为止,您可能已经猜到该属性在许多情况下(但不是所有情况)可能会返回一个字符串,因此trim调用将从开始和结束处去掉空白,val属性最终被静态地设置为该字符串。

请参阅使用对象:定义getter和setter以及从中链接的getter/setter页面,了解如何实际控制从属性读取值或向属性写入值时发生的情况。

不,没有办法内置设置inputtextarea的值并同时获得其原始值。

但不用担心——你真的可以很容易地编写自己的方法来做到这一点!

有一种方法:

function getAndSet(id, newValue){
  var el = document.getElementById(id);
  var oldValue = el.value.trim();
  el.value = newValue;
  return oldValue;
}
var searchBar = {
  element : document.getElementById('memSearchInput'),
  val : getAndset("memSearchInput", "someNewValue")
}