ví dụ đơn giản nhất:
function Foo() {
this.bar = function() {
return 42;
}
}
Bây giờ bạn có thể tạo bao nhiêu trường hợp của Foo
như bạn muốn và gọi bar()
:
var a = new Foo();
var b = new Foo();
Thậm chí mặc dù cả hai đối tượng đều có bar()
phương pháp đó là chính xác như nhau trong cả hai trường hợp, đây là những phương pháp riêng biệt. Thực tế, mỗi đối tượng Foo
mới sẽ có một bản sao mới của phương pháp này.
Mặt khác:
function Foo() {}
Foo.prototype.bar = function() {
return 42;
}
có kết quả cuối cùng nhưng các chức năng được lưu trữ chỉ một lần trong đối tượng prototype
hơn là trong một đối tượng riêng của mình. Đây có thể là một bộ ngắt giao dịch nếu bạn tạo ra một tấn Foo
trường hợp và muốn lưu một số bộ nhớ.
Nguồn
2011-09-05 21:37:09
Nó có thể có nghĩa là 2 điều: một khung javascript và một phương thức javascript để mở rộng và xác định các đối tượng. Hai là hoàn toàn khác nhau. Không chắc chắn một trong hai ý của bạn. –
Câu hỏi này không rõ ràng. Thuộc tính lib hoặc obejcts? – user278064
Có lẽ bạn nên đọc: [MDN - Giới thiệu về JavaScript hướng đối tượng] (https://developer.mozilla.org/En/Introduction_to_Object-Oriented_JavaScript). –