【发布时间】:2011-04-03 14:47:02
【问题描述】:
我很好奇以下 OOP javascript 技术之间有什么区别。他们似乎最终会做同样的事情,但被认为比另一个更好吗?
function Book(title) {
this.title = title;
}
Book.prototype.getTitle = function () {
return this.title;
};
var myBook = new Book('War and Peace');
alert(myBook.getTitle())
对
function Book(title) {
var book = {
title: title
};
book.getTitle = function () {
return this.title;
};
return book;
}
var myBook = Book('War and Peace');
alert(myBook.getTitle())
【问题讨论】:
-
闭包主要用于创建私有作用域。因此,当使用闭包时,您可以创建真正的私有变量。对于像 jQuery 这样的大型项目,他们使用它来防止代码冲突。
-
这是 MSDN 上一篇关于 execution speed 的有趣(有些旧)文章。
标签: javascript oop