Javascript - getDomElement链接到这里的哪里?

时间:2015-04-16 05:12:35

标签: javascript oop dom return

我正在努力探索面向对象的Javascript,并且我有一些示例代码可供使用。

它的一部分发布在下面,它创建了一个按钮,这一切都很好,但是当我尝试重新创建它时,我不能放在getDomElement之后来自this之后的地方{1}}关键字。

有人可以帮我这个吗?

谢谢: - )

澄清一下 - getDomElement似乎不是变量,但它有效。这是某种财产吗?

var SaveButton = function(value, click_action){
   var _dom_element = document.createElement("input");
       _dom_element.type = "button";
       _dom_element.value = value;

 _dom_element.onclick = function(){
        click_action.call(null);
    };

 this.getDomElement = function() {
      return _dom_element;
 };
}

1 个答案:

答案 0 :(得分:1)

SaveButton是一个构造函数,可以在您的案例中创建input类型button。您将值和click事件处理程序传递给该构造函数。

这里,_dom_element是该函数的局部变量。并且您将click事件绑定到它。

现在回答你的问题:

 this.getDomElement = function() {
      return _dom_element;
 };

getDomElement是该构造函数的属性。这将附加到您将使用构造函数创建的所有按钮。 由于_dom_element仅为该功能的私有/本地,getDomElement充当api以获取对该button的引用。

  

JavaScript如何知道如何处理?

它只是附加到该构造函数的属性。所以当你打电话时

var button = new SaveButton("value", callbackfunction);

var reference = button.getDomElement();

// reference.style.background do anything with that button now.

它将在该按钮对象中查找属性并调用该函数。反过来,当您使用构造函数创建对象时,会为该对象创建一个范围。因此,属性getDomElement将成为该范围的一部分,并且能够返回_dom_element引用。