jQuery对象和参数 - 使用正确的terminolgy /说明

时间:2012-09-28 10:24:40

标签: javascript jquery

我发帖是因为对一些概念缺乏了解,也检查了我对此代码的描述是否准确。

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

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

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

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

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

很抱歉,如果我的术语描述不够或不够准确。任何简洁明了的答案都会受到大力赞赏。

var contactForm = {
        init: function() {

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

1 个答案:

答案 0 :(得分:2)

  

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

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

  

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

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

  

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

没有。你在init函数中所做的事情(起初)与contactForm对象无关。您正在调用jQuery函数,并返回一个您调用insertAfter方法的对象,并且由于您没有对该函数的结果执行任何操作,因此会对其进行垃圾回收。

  

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

您正在传递两个参数:字符串和对象。 jQuery函数对这些参数的作用是您的代码所不知道的。根据{{​​3}}(以及代码,如果你真的想深入研究),这将创建一个button元素(包装在jQuery实例中)并在其上调用text方法

  

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

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