我发帖是因为对一些概念缺乏了解,也检查了我对此代码的描述是否准确。
首先,我创建了一个名为contactForm的父对象。我已经使这个对象等于一个使用文字符号的对象文字,即用{}创建一个新对象并在括号内定义属性。
然后我有init方法。如果您熟悉面向对象的编程,那么与构造函数方法相同。
现在下一部分是我感到困惑的地方。我正在使用jQuery创建一个新元素,它是按钮标签。这个新创建的元素是一个名为contactForm的父对象内的对象吗?
我的第二个问题是我是否传递了一个参数,将文本设置为“与我联系!”到contactForm对象或按钮元素/对象?
我的最后一个问题 - 传递给对象的参数是否也可以称为该对象的属性?
很抱歉,如果我的术语描述不够或不够准确。任何简洁明了的答案都会受到大力赞赏。
var contactForm = {
init: function() {
$('<button></button>', {
text: 'Contact Me!'
})
.insertAfter('article:first');
}
};
答案 0 :(得分:2)
首先,我创建了一个名为contactForm的父对象。我已经使这个对象等于一个使用文字符号的对象文字,即用{}创建一个新对象并在括号内定义属性。
您有一个对象,在代码中由对象literal描述,并将其分配给变量contactForm
。不知道你为什么称它为“父母”。
然后我有init方法。如果您熟悉面向对象的编程,那将与构造函数方法相同。
您的对象有一个名为“init”的属性,这是一个函数 - 方便地称为“方法”。但是,JavaScript中的构造函数有点不同 - 每个函数在使用new
operator调用时都可以构造对象。当然,当声明单例实例(作为文字)时,通常会使用专用的初始化方法。
现在下一部分是我感到困惑的地方。我正在使用jQuery创建一个新元素,它是按钮标签。这个新创建的元素是父对象内部的一个对象,名为contactForm?
没有。你在init
函数中所做的事情(起初)与contactForm
对象无关。您正在调用jQuery
函数,并返回一个您调用insertAfter
方法的对象,并且由于您没有对该函数的结果执行任何操作,因此会对其进行垃圾回收。
我的第二个问题是我是否传递了一个参数,将文本设置为“与我联系!”到contactForm对象或按钮元素/对象?
您正在传递两个参数:字符串和对象。 jQuery函数对这些参数的作用是您的代码所不知道的。根据{{3}}(以及代码,如果你真的想深入研究),这将创建一个button
元素(包装在jQuery实例中)并在其上调用text
方法
我的最后一个问题 - 传递给对象的参数是否也可以称为该对象的属性?
没有。您将参数传递给函数。可能会发生该函数将它们设置为返回对象的属性,但这取决于函数。无论如何,它们不被称为“功能对象的属性”。