【发布时间】:2015-08-03 19:02:18
【问题描述】:
我目前正在学习 JavaScript。我对对象(引用类型和普通对象)感到困惑。以下是一些创建对象(引用类型)的代码:
function TheObject(first, last) {
this.first = first;
this.last = last;
}
TheObject.prototype.theMethod = function() {
document.write("first : " + this.first + ", last : " + this.last + "</br>");
};
var anObject = new TheObject("Google", "Good");
anObject.theMethod();
这里还有一些其他代码也可以创建一个对象(它也是引用类型吗?):
var TheAnotherObject = function(first, last){
return {
first : first,
last : last,
theMethod : function() {
document.write("first : " + this.first + ", last : " + this.last + "</br>");
}
};
}
var anotherObject = TheAnotherObject("Yahoo", "Good");
anotherObject.theMethod();
现在,我的困惑是这两种创建对象的方式之间的实际区别在哪里。我知道我可以通过两种方式创建一个 Object 类型(使用“new”关键字)。那有什么区别呢?
请帮助我了解我在这里遗漏了什么。我知道理解这一点非常重要,因为 JavaScript 大量使用函数和对象。任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
第二种方法没有将原型与
TheObject类关联。 -
我可以猜测,但不知道你所说的“引用类型”是什么意思——你在哪里看到这个表达式?
-
@torazaburo 来自“Jeremy McPeak”的“Beginning Javascript”一书。我正在从这本书中学习。
-
这不是标准术语,坦率地说是令人困惑的。虽然对于“JS 有没有类”这个问题众说纷纭,但是将通过
new创建对象的函数称为“类”是最简单最方便的,这样大家就差不多知道你在说什么了。跨度>
标签: javascript function object