Рассмотрим простой пример:Почему JSLint запрещает «это» ключевое слово?
"use strict";
var Foo = {
field: 0,
func: function() {
this.field = 4;
}
}
JSLint бросает ошибку:
Unexpected 'this'. At the line "this.field = 4".
Я, кажется, некоторые вопросы здесь, в StackOverflow просят это, и во всех случаях ответ был просто включите флаг «Поверните этот». Тем не менее, меня интересует, почему создатели JSLint считают, что использование «этого» (или может привести) к ошибке.
Кроме того, как бы реализовать функции-члены без «этого» ключевого слова и не ожидая, что пользователь передаст экземпляр в качестве первого аргумента?
EDIT Может быть, я не заставляю себя достаточно ясно, что этот вопрос, несмотря на глядя похоже не имеет ответа на то, что я спрашиваю: JSLint Error: Unexpected 'this'
Проблема с этим вопросом не вопрос, а ответы, которые он получил. Обратите внимание, как принятый ответ: «Мое предложение: скажите JSLint, чтобы он заткнулся». И я специально говорю в своем сообщении, что это недействительный ответ на меня, поскольку я хочу понять, почему использование этого запрещено JSLint, а не как избежать этой ошибки.
Только примечание, JSLint не только запрещает вещи, которые могут привести к ошибкам. Он «заставляет» использовать конкретный стиль кодирования. – meskobalazs
Я хотел бы отметить, что я особенно упоминаю в своем вопросе, что он отличается от того, который я «дублирую», несмотря на то, что не упоминал ссылку. В частности, когда я сказал: «У меня есть некоторые вопросы здесь, в StackOverflow, просящие об этом, и во всех случаях ответ заключался только в том, чтобы включить флаг« Tolerate this ». Я имел в виду этот самый вопрос, среди прочего.Обратите внимание, что принятый ответ в этом вопросе неприемлем с моей точки зрения, поскольку отключение ошибки не объясняет, что вызвало ее и почему было вызвано. – Setzer22
@meskobalazs, Полезно знать. Тем не менее, я заинтригован тем, что такое «хороший» стиль кодирования, который позволяет избежать «этого» и почему это, по-видимому, правильное использование «этого» ключевого слова, искаженного в соответствии с JSLint. – Setzer22