我能知道:在javascript中做什么吗

我能知道:在javascript中做什么吗,javascript,Javascript,这是我试图理解的一行代码 var UIController = (function(){ var domItems = { questInsertBtn: document.getElementById('question-insert-btn') }; return{ getDomItems: domItems } })(); 上面这一行和我的一样吗 questInsertBtn = document

这是我试图理解的一行代码

    var UIController = (function(){

       var domItems = {

          questInsertBtn: document.getElementById('question-insert-btn')

       };

   return{
      getDomItems: domItems
   }
})();
上面这一行和我的一样吗

 questInsertBtn =  document.getElementById('question-insert-btn');

不,它们不一样。在第一种情况下,
questinesertbttn
是对象和
document.getElementById('question-insert-btn')的键该键的值。但是独立的
questInsertBtn:document.getElementById('question-insert-btn')没有任何意义


在第二种情况下,
questinestbttn
似乎是一个变量&
document.getElementById('question-insert-btn')
是分配给该变量的值

它们做的事情非常不同

共同点:它们都试图解析表达式
document.getElementById('question-insert-btn')
。该表达式请求调用函数
document.getElementById
,该表达式解析为调用该函数返回的值

在本例中,使用一个参数调用该函数,即文本字符串
'question-insert-btn'

查找(在当前HTML文档中)其
id
属性与该参数匹配的HTML元素,并返回该元素。这就是
questinestbttn
变量中存储的内容


显示的第一行代码:

questinesertbtn:document.getElementById('question-insert-btn')

很可能不是一个完整的语句,如果您尝试将其作为一个语句,您将得到一个错误

不过,您可能会在语句中看到这样一行。请出示整个声明,以便我们知道该行是什么内容的一部分


第二行:

questinesertbtn=document.getElementById('question-insert-btn')


如果这是一个单独的语句,则构成一个。它将
=
后面右侧表达式中的值赋给名为
questinesertbttn
的变量。请参见上文,了解该表达式的解析方式。

我将尽我所能解释您的代码。 首先,您有一个变量(
UIController
),它将存储函数返回的值:

var UIController = (function()
{
    ...
})();
其次,
自调用
函数的返回值将是一个具有唯一的
的对象,该键名为
getdominems
一些值某个值将是一个对象,由名为
questinestbttn
和他的值组成,实际上是方法
getElementById('question-insert-btn')的结果。

在sumary中,代码所做的只是使用具有此结构的对象初始化变量
UIController

var UIController = {
  "getDomItems": {
    "questInsertBtn": value
  }
}
其中
value
是函数
getElementById('question-insert-btn')
的结果。您可以在下一个示例中自己检查,也许从
console.log()
进行调试比我的解释更有帮助:

var UIController=(函数()
{
var-dominems={questinesertbttn:document.getElementById('question-insert-btn')};
console.log(“域名:”,域名);
返回{getDomItems:domItems};
})();
控制台日志(“UIController:,UIController)

第一行代码本身没有意义。第一行是在对象中设置键值对关系,而第二行只是将变量
quesInsertBtn
设置为等于element可能是您的第一行代码是三元运算符的示例。请围绕第一行代码发布更多上下文,以便我们了解其中的情况。
var UIController = {
  "getDomItems": {
    "questInsertBtn": value
  }
}