Hãy xem xét ví dụ này đơn giản:Tại sao JSLint cấm từ khóa "này"?
"use strict";
var Foo = {
field: 0,
func: function() {
this.field = 4;
}
}
JSLint ném lỗi:
Unexpected 'this'. At the line "this.field = 4".
tôi đã dường như một số câu hỏi ở đây trong StackOverflow yêu cầu này, và trong tất cả các trường hợp, câu trả lời là chỉ để bật cờ "Dung thứ này". Tuy nhiên, tôi quan tâm đến lý do tại sao những người sáng tạo JSLint nghĩ rằng việc sử dụng "điều này" là (hoặc có thể dẫn đến) một lỗi.
Ngoài ra, làm cách nào để triển khai các chức năng của thành viên mà không có từ khóa "này" và không mong đợi người dùng chuyển đối tượng đó làm đối số đầu tiên?
EDIT Có lẽ tôi đã không làm cho bản thân mình đủ rõ ràng trong đó câu hỏi này, mặc dù tìm kiếm tương tự không có một câu trả lời cho những gì tôi đang hỏi: JSLint Error: Unexpected 'this'
Vấn đề với câu hỏi đó không phải là câu hỏi chính nó mà đúng hơn là câu trả lời. Lưu ý cách câu trả lời được chấp nhận là: "Đề xuất của tôi là: yêu cầu JSLint tắt". Và tôi đặc biệt nói trong bài viết của tôi rằng đây không phải là câu trả lời hợp lệ cho tôi, vì tôi muốn hiểu tại sao việc sử dụng điều này bị JSLint cấm, không phải cách để tránh lỗi đó.
Chỉ cần lưu ý, JSLint không chỉ cấm những thứ có thể dẫn đến lỗi. Nó "buộc" bạn sử dụng một kiểu mã hóa cụ thể. – meskobalazs
Tôi muốn lưu ý rằng tôi đặc biệt đề cập đến trong câu hỏi của mình rằng nó khác với câu hỏi tôi đang "sao chép", mặc dù không trích dẫn cụ thể liên kết. Cụ thể khi tôi nói: "Tôi đã có một số câu hỏi ở đây trong StackOverflow yêu cầu điều này, và trong tất cả các trường hợp, câu trả lời chỉ là để cho phép" khoan dung này "cờ." Tôi đang đề cập đến câu hỏi đó, trong số những câu hỏi khác.Lưu ý rằng câu trả lời được chấp nhận trong câu hỏi đó không được chấp nhận theo quan điểm của tôi, vì việc vô hiệu hóa lỗi không giải thích nguyên nhân gây ra lỗi đó và tại sao nó lại gây ra. – Setzer22
@meskobalazs, Điều cần biết. Tuy nhiên, tôi đang hấp dẫn những gì là "tốt" phong cách mã hóa tránh "này" và tại sao điều này rõ ràng là sử dụng đúng đắn của từ khóa "này" thiếu sót theo JSLint. – Setzer22