这个对象总是会重新调用该函数吗?

时间:2013-11-18 14:49:31

标签: javascript

这是第一种方式:

var Objek = {
    node : document.getElementById(known_id),
}

因此,当我致电Objek.node时,这总是会调用document.getElementById吗?

第二种方式更好吗? :

var Objek = (function() {
    var getNode = document.getElementById(known_id);


    return {
        node : getNode
    }
})();

我认为第二种方式更好,并且在我致电document.getElementById时不会重新调用Objek.node

2 个答案:

答案 0 :(得分:1)

在这两种情况下,getElementById()只被调用一次(当你创建对象时,而不是当你使用objek.node时)。

在第一种情况下,只调用getElementById()并将值赋值给新对象...

...在第二种情况下,首先调用函数,然后创建getNode变量,然后调用getElementById()并将结果赋值给变量,最后使用给定属性创建新对象。

实际上,第一种情况是执行起来更快,开发人员更容易理解。

答案 1 :(得分:0)

它们是等价的。在getElementByIdmethod中只调用一次(当您创建对象时),然后在执行Objek.node

时始终返回变量中的存储值