Это важное ключевое слово в языке объекта. JavaScript -это отличается от объективного языка, такого как Java и C#, что делает это более запутанным и запутанным.
Что это использует:
1. Чистая функция
2. Вызов метода объекта
3. Используйте новое, чтобы вызвать конструктор
4. Внутренние функции
5. Используйте звонок / применить
6. Переплет событий
1. Чистая функция
Код кода копирования следующим образом:
var name = 'Это окно';
function getName () {
Console.log (это);
console.log (this.name);
}
getName ();
Анализ выполнения результатов: это в чистых функциях указывает на глобальные объекты, окно.
2. Вызов метода объекта
Код кода копирования следующим образом:
var name = 'это окно';
var testObj = {
Имя: «Это Testobj»,
getName: function () {
Console.log (это);
Console.log (this.name);
}
}
testobj.getName ();
Анализ результатов запуска: это указывает на объект, который вызывает метод.
3. Используйте новое, чтобы вызвать конструктор
Код кода копирования следующим образом:
функция getObj () {
console.log (это);
}
новый getObj ();
Запустите анализ результатов: это в новом конструкторе указывает на недавно сгенерированный объект.
4. Внутренние функции
Код кода копирования следующим образом:
var name = "Это окно";
var testObj = {
Имя: «Это тестоби»,
getName: function () {
// var seelf = this;
var ahandle = function () {{)
Console.log (это);
console.log (this.name);
//console.log (set);
}
ручка ();
}
}
testobj.getName ();
Анализ результатов запуска: это во внутренней функции по -прежнему указывает на глобальный объект, окно. Как правило, он считается ошибкой дизайна на языке JavaScript, потому что никто не хочет указывать на это во внутренней функции на глобальный объект. Общий метод обработки состоит в том, чтобы сохранить это как переменную, и, как правило, согласовано быть таким или самостоятельно, как показано в вышеуказанном коде.
5. Используйте звонок / применить
Код кода копирования следующим образом:
var name = 'это окно';
var testObj1 = {
Имя: «Это TestoBj1»,
getName: function () {
console.log (это);
Console.log (this.name);
}
}
var testObj2 = {
Имя: 'Это Testobj2'
}
testObj1.getName.apply (testObj2);
testObj1.getName.call (testObj2);
Примечание. Применить и вызовы похожи, но вторые параметры двух разных:
[1] Call (thisarg [, arg1, arg2, ...]);
[2] применить (thisarg [, argarray]);
Анализ выполнения результатов: это использует это в функции вызова / применения, чтобы указать на объект привязки.
6. Переплет событий
Этот метод в методе события должен быть самым подозрительным местом, большинство ошибок возникли из этого.
Код кода копирования следующим образом:
// страница для привязки на элементе
<script type = "text/javascript">
функция btclick () {
Console.log (это);
}
</script>
<тело>
<button id = "btn" onclick = "btclick ();"> Нажмите </button>
</body>
Код кода копирования следующим образом:
// метод связывания JS (1)
<тело>
<button id = "btn"> нажмите </button>
</body>
<script type = "text/javascript">
функция btclick () {
Console.log (this); // Консоль
}
document.getElementById ("btn").
Document.GetElementById ("btn").
</script>
Код кода копирования следующим образом:
// метод связывания JS (2)
<тело>
<button id = "btn"> нажмите </button>
</body>
<script type = "text/javascript">
document.getElementById ("btn").
Console.log (this); // Консоль
}
Document.GetElementById ("btn").
</script>
Код кода копирования следующим образом:
// метод связывания JS (3)
<тело>
<button id = "btn"> нажмите </button>
</body>
<script type = "text/javascript">
функция btclick () {
console.log (это);
}
Document.GetElementById ("btn"). Метод (метод метода (метод), когда он используется в обработке событий.
Document.getElementById ("Btn").
</script>
Анализ запущенных результатов: приведенные выше два распространенных метода связывания событий, связывание событий на элементе страницы в дополнение к методу события связывания, это указывает на элемент элимента события связывания.