thể trùng lặp:
Use of 'prototype' vs. 'this' in Javascript?chức năng dụ Javascript so với chức năng nguyên mẫu
sự hiểu biết của tôi về các loại khác nhau của các hàm JavaScript như sau:
function MyObj() {
this.propOne = true;
this.publicInstanceFunc = function() {
if (propOne)
return 'public instance function';
}
function privateFunc() {
return 'private function only visible inside this constructor';
}
}
MyObj.prototype.protoFunc = function() {
if (this.propOne)
return 'prototype function shared amongst all instances of MyObj';
}
- Are những điều này đúng không?
- Trong trường hợp nào người ta nên đặt các chức năng trên nguyên mẫu (ví dụ:
protoFunc
) và trong hàm tạo (ví dụ:publicInstanceFunc
)? - Đang sử dụng
this
cách chính xác để truy cập các thuộc tính bên trong các hàm nguyên mẫu?
Cảm ơn! Câu trả lời hay! – mcjabberz
xin lỗi để hồi sinh câu hỏi/câu trả lời này, nhưng không bao bọc chức năng bên ngoài trong parens làm bất cứ điều gì đặc biệt? ví dụ. như thế nào (function() {})(); khác với hàm() {}(); – Matt
@Matt: các parens bên ngoài buộc hàm theo nghĩa đen được hiểu là biểu thức thay vì một câu lệnh; họ là không cần thiết trong trường hợp này bởi vì nhiệm vụ đã buộc sự giải thích này, nhưng nếu không có nó, bạn sẽ nhận được một lỗi cú pháp nếu bạn bỏ qua các parens – Christoph