2011-09-05 46 views
5

Tôi đã thực hiện một số lượng lập trình hợp lý trong JavaScript/JQuery.Khi nào tôi nên sử dụng "nguyên mẫu" trong JavaScript

Nhưng tôi chưa bao giờ sử dụng "nguyên mẫu". Trong thực tế, tôi không có đầu mối những gì nó có nghĩa là.

Bạn có ví dụ thực tế khi hữu ích không?

+5

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. –

+0

Câu hỏi này không rõ ràng. Thuộc tính lib hoặc obejcts? – user278064

+1

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). –

Trả lời

9

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ớ.

2

Giả sử bạn đang hỏi về Object.prototype,

Tất cả các đối tượng trong JavaScript có nguồn gốc từ Object; tất cả các đối tượng kế thừa các phương thức và thuộc tính từ Object.prototype, mặc dù chúng có thể bị ghi đè. Ví dụ, các nguyên mẫu của các hàm tạo khác ghi đè thuộc tính hàm tạo và cung cấp các phương thức toString riêng của chúng. Các thay đổi đối tượng nguyên mẫu Object được truyền cho tất cả các đối tượng trừ khi các thuộc tính và phương thức chịu sự thay đổi đó được ghi đè thêm dọc theo chuỗi nguyên mẫu.

đọc this và sau đó có thể this

Các vấn đề liên quan