我目前正处于
JavaScript的学习过程中.我与Objects(引用类型和普通对象)混淆了.以下是一些创建对象的代码(引用类型):
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大量使用函数和对象,所以理解这一点非常重要.任何帮助将非常感谢.提前致谢.
最佳答案 主要区别是:
第一种方法使用原型定义方法.这意味着从该类创建的所有实例将使用该方法的相同定义(theMethod)
否则,每次从该类创建新实例时,第二种方法都会定义一个新的theMethod方法.显然,当有太多实例时,它会很昂贵,因为将会有几个定义为方法做同样的事情.