2012-05-22 19 views
5

Tôi đã tự hỏi, diferrence giữa một phương thức prototyped và non-prototyped trong JavaScript là gì? Bất kỳ trợ giúp nào được đánh giá cao.Prototyped và phương pháp không được tạo mẫu?

+0

MDN Giải thích về nguyên mẫu ở đây -> https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/prototype – ManseUK

+0

Một là xác định trên đối tượng của nó elf, cái còn lại trên nguyên mẫu của vật thể. Theo định nghĩa. –

Trả lời

10

Phương pháp không được tạo mẫu sẽ mất bộ nhớ trong mọi trường hợp của lớp.

Nó cũng sẽ (giả sử nó được khai báo trong phạm vi của hàm tạo lớp) có quyền truy cập vào bất kỳ biến riêng tư (hoặc phương thức khác) nào được khai báo trong phạm vi đó.

Ví dụ, điều này sẽ tạo ra một thể hiện của hàm mỗi đối tượng, và chức năng có thể truy cập myVar:

function MyObject() { 
    var myVar; 
    this.func = function() { ... }; 
}; 

và trong trường hợp này chỉ có một thể hiện của các chức năng chia sẻ giữa tất cả các thể hiện của đối tượng , nhưng nó sẽ không có quyền truy cập vào myVar:

function MyObject() { 
    var myVar; 
}; 

MyObject.prototype.func = function() { ... }; 
+0

damn mà rep cap ...! – Alnitak

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