0

由于缺乏对几个概念的理解,我发帖也是为了检查我对这段代码的描述是否准确。

首先,我创建了名为contactForm 的父对象。我已经使这个对象等于一个使用文字表示法的对象文字,即使用 { } 创建一个新对象并在括号内定义属性。

然后我有init方法。如果您熟悉面向对象的编程,那将与您的构造函数方法相同。

现在下一部分是我感到困惑的地方。我正在使用 jQuery 创建一个新元素,即按钮标签。这个新创建的元素是否是父对象内的一个对象,称为contactForm?

我的第二个问题是我是否传递了一个将文本设置为“联系我!”的参数 到contactForm 对象或按钮元素/对象?

我的最后一个问题 - 传递给对象的参数是否也可以称为该对象的属性?

抱歉,如果我的术语描述不够准确或不够准确。任何简洁明了的答案将不胜感激。

var contactForm = {
        init: function() {

            $('<button></button>', {
                text: 'Contact Me!'
            })
                .insertAfter('article:first');
        }
    }; 
4

1 回答 1

2

首先,我创建了名为contactForm 的父对象。我已经使这个对象等于一个使用文字表示法的对象文字,即使用 { } 创建一个新对象并在括号内定义属性。

您有一个对象,它在您的代码中由对象文字描述,并将其分配给变量contactForm。不知道为什么你会称它为“父母”。

然后我有init方法。如果您熟悉面向对象的编程,那将与您的构造函数方法相同。

您的对象有一个名为“init”的属性,它是一个函数 - 方便地称为“方法”。但是,JavaScript 中的构造函数的工作方式略有不同——每个函数在使用newoperator调用时都可以构造对象。当然,在声明单例实例(作为文字)时,通常会使用专用的初始化方法。

现在下一部分是我感到困惑的地方。我正在使用 jQuery 创建一个新元素,即按钮标签。这个新创建的元素是否是父对象内的一个对象,称为contactForm?

不,您在函数中所做的(起初)与对象init无关。contactForm您正在调用该jQuery函数,它返回一个您调用该insertAfter方法的对象,并且由于您对该函数的结果不做任何事情,因此它被垃圾收集。

我的第二个问题是我是否传递了一个将文本设置为“联系我!”的参数 到contactForm 对象或按钮元素/对象?

您正在传递两个参数:一个字符串和一个对象。jQuery 函数对这些参数的作用对于您的代码来说是未知的。根据文档(以及代码,如果你真的想深入研究的话),这将创建一个button元素(包装在一个 jQuery 实例中)并调用text它的方法。

我的最后一个问题 - 传递给对象的参数是否也可以称为该对象的属性?

不,您将参数传递给函数。函数可能会将它们设置为返回对象的属性,但这取决于函数。无论如何,它们不被称为“函数对象的属性”。

于 2012-09-28T12:01:42.387 回答