Этот
Это ключевое слово в JavaScript. Значение этого изменится в зависимости от использования функции. Но всегда есть принцип, то есть это относится к объекту, который называет функцию.
1. Определение
1. Это специальный объект (или эта ссылка) внутри функции - он относится к объекту среды, на котором выполняется функция.
2. Эта ссылка представляет собой переменную только для чтения, которую можно использовать в любое время в коде JavaScript. Эта ссылка (указывает на) - это объект, который имеет характеристику, которая автоматически изменяет свой эталонный объект в соответствии с контекстом кода. Его правила цитирования следующие:
• В самом внешнем коде эта ссылка относится к глобальному объекту.
• Внутри функции эта ссылка варьируется в зависимости от того, как вызывается функция. следующее
1) Вызов конструктора - эта ссылка относится к сгенерированному объекту
2) Вызов метода - эта ссылка относится к объекту приемника
3) Применить или вызов - эта ссылка относится к объекту, указанному с параметрами применения или вызова
4) Другие способы вызова - эта ссылка относится к глобальному объекту
2. На основании вышеуказанной и соответствующей онлайн -информации статус использования этого объекта (цитируется) суммируется следующим образом:
JavaScript - это динамический язык, и только тогда, когда это ключевое слово выполняется, может быть определено. Так что это всегда указывает на вызывающего абонента, то есть ссылка на «объект вызова». Проще говоря, какой объект, который называется метод, принадлежит этому, указывает на этот объект. В зависимости от метода вызова функции это может указывать на глобальный объект, текущий объект или любой другой объект.
1. Глобальные вызовы функций, это в глобальной функции будет указывать на окно глобального объекта. (Режим вызова функции)
// кодовый список 1 <script type = "text/javascript"> var message = "Это в окне"; // это предложение записано вне функции и внутри функции функции func () {if (this == window) {alert ("this == window"); оповещение (сообщение); this.methoda = function () {alert ("I'm функция");}}}} func (); // Если метод func не называется, атрибуты или методы, определенные в немРезультатом вызова func () является это окно ==, это в окне
Результат вызова to methoda () - это функция
2. Constructor Call, то есть создание объекта с использованием нового, это будет указывать на объект, генерируемый через конструктор. (Режим вызова конструктора)
Список кода 2
<script type = "text/javascript"> function func () {if (this == window) {alert ("this == window");} else {alert ("this! = window");} this.fielda = "I'm Field"; alert (this);} var obj = new Func (); Alert (obj.fielda); // это указывает на объект obj </script>3. Вызов метода объекта, это указывает на текущий объект. Любая функция, до тех пор, пока функция используется или присваивается в качестве метода объекта, эта внутри функции является ссылкой на сам объект. Также можно понять, что это написано в обычном объекте, и это указывает на сам объект. (Режим вызова метода)
(Определение метода: функция как свойство объекта называется методом)
// Список кода 3 <script type = "text/javascript"> var obj = {x: 3, doit: function () {if (this == window) {alert ("this == window");} else {alert ("Метод называется:" + this.x);}}}; obj.doit (); // это указывает на объект obj </script>4. Вызовите это с помощью метода Apply или вызовов, это указывает на пропущенный объект.
Метод применения или вызова может использоваться для вызова метода вместо другого объекта. Метод вызова изменяет контекст объекта функции из исходного контекста на новый объект, указанный ThisOBJ. Если этот параметр не предоставлен, глобальный объект используется в качестве ThisOBJ. (Применить режим вызова)
// Список кода 4 <script type = "text/javascript"> var obj = {x: 3, doit: function () {alert ("Метод называется:" + this.x);}}; var obj2 = {x: 4}; obj.doit (); // 3, это указывает на objobj.doit.apply (obj2); // 4, это указывает на obj2obj.doit.call (obj2); // 4, это указывает на obj2 </script>5. Это в цепочке прототипа - объект прототипа и это в точке конструктора в недавно созданный объект экземпляра. Используйте метод расширения прототипа, чтобы получить экземпляр исходного объекта с использованием этого, и частные поля не могут быть получены через цепочку прототипа.
// Список кодов 5 <script type = "text/javascript"> function func () {this.fielda = "Я поле"; var privatefielda = "im var";} func.prototype = {extendmethod: function (str) {alert (str + ":" + this.fielda); alert (privatefielda); // произошла ошибка, частное поле не может быть получено через цепочку прототипа. }}; var obj = new func (); obj.extendmethod ("из прототипа"); // В этом направлении объекта OBJ в цепочке конструктора и прототипа в это время, OBJ </script>6. Это в закрытии - закрытие: функция, написанная в функции, указывает на окно глобального объекта.
6.1 Закрытие в объекте
// Список кода 6 <script type = "text/javascript"> var name = "the Window"; var obj = {name: "my object", getNamefunc: function () {return function () {return this.name;}}}; alert (obj.getNamefunc () () ()); // окно </script>В настоящее время это в закрытии указывает на окно глобального объекта и может получить только свойства глобального объекта. Итак, что мне делать, если к свойствам внутри объекта (переменных внешних функций) хотят получить доступ? Просто сохраните этот объект внешней функции в переменной, к которой можно получить доступ к закрытию. Посмотрите на следующий код:
// Список кода 7 <script type = "text/javascript"> var name = "the Window"; var obj = {name: "my object", getNamefunc: function () {var that = this; return function () {return that.name;}}}; alert (obj.getNamefunc () () ()); // мой объект </script>Назначьте это внешней функции этой переменной, вы можете прочитать переменную внешней функции.
6.2. Будь то непосредственно на функцию или создание функции, это в функции закрытия, которую она возвращает, указывает на окно.
// Список кода 8 <script type = "text/javascript"> function a () {alert (window this == window); var that = this; var func = function () {alert (this == window); alert (that);}; return func;} var b = a (); b (); // true, true, [Object Window] var c = new a (); c (); // false, true, [объект объекта] </script>7. Функция использует метод bind () для привязки объекта, и это будет указывать на значение, передаваемое функции bind ().
// Список кода 9 <script type = "text/javascript"> window.color = "red"; var obj = {color: "blue"}; function shiecolor () {alert (this.color);} var objsaycolor = saycolor.bind (obj); objsaycolor (); // синий </script>8. Сегмент скриптов, встроенный в элемент HTML, это указывает на сам элемент
// Список кода 10 <div onclick = "test (this)" id = "div"> щелкните меня </div> <script type = "text/javascript"> function test (obj) {alert (obj); // [Object htmldEvelement]} </script>9. Напишите в теге сценария: это относится к окну глобального объекта. Это то же самое, что и глобальная переменная, вызванная глобальной функцией в первой точке.
Выше приведено цитата из этого в JavaScript, представленном вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!