Этот пример описывает использование функции JS. Поделитесь этим для вашей ссылки. Детали следующие:
При написании функций в JS это много используется. Что именно это? Это ключевое слово, указатель, указывающий на объем среды выполнения, также называемый контекстом.
Давайте сначала поговорим о функциях. Лично я понимаю, что функции - это кодовые блоки, которые неоднократно называются на языке.
В JS, когда функция присваивается свойствам объекта, она называется методом
нравиться:
var m = {}; m.title = 'title'; m.show = function () {alert (this.title)} m.show ()Это должно назвать функцию как метод объекта m
В этом случае это указывает на объект m.
Имя функции прямого вызова называется функцией:
var a = 1212; function show () {alert (a) // 1212} show () // 1212В глобальной среде глобальные переменные могут быть поняты как свойства окон, а глобальные функции - это методы окон
См. Следующий пример:
var m = {}; m.id = 'mmm'; m.show = function () {alert (this.id);} var a = {}; a.id = 'aaa'; a.show = m.show; a.show (); //aaaa.show=m.show; Сначала понять это предложение, потому что функция является объектом, m.show = function () {alert (this.id)}Это выражение эквивалентно ссылке на A.Show и M.Show одновременно
function () {alert (this.id)}На самом деле эквивалентно
a.show = function () {alert (this.id)}Поэтому, когда называется A.show (), это указывает на объект A,
Посмотрите на следующий каштан
var m = {}; m.id = 'mmm'm.show = function () {alert (this.id)} var a = {} a.id =' aaa'a.show = function () {m.show ()}; a.show (); // ммммПоэтому при вызове A.show () это эквивалентно вызову метода M.Show (), так что это. указывает на M -объект.
Посмотрите на следующий пример, я до сих пор не понимал этого в начале
var color = 'red'; var app = {}; app.color = "green"; app.paint = function (node) {node.style.color = this.color; alert (this.color);} function findnode (callback) {var btn = document.queryselector ('. btn'); обратный вызов (btn); // pass in,} findnode (app.paint); предупреждение (this.color); // красный вместо зеленогоКогда функция передает аргумент, она передает аргументы в соответствии с значением, а не ссылками
Поэтому, когда FindNode (app.paint); передается, на самом деле
function (node) {node.style.color = this.color; Alert (this.color);}, поскольку FindNode определяется глобально, это указывает на окно или неопределенное;
О прохождении параметров, прохождении прошлых значений
Функция Show (a) {alert (a)}Легко понять, когда параметры являются основными типами данных
var b = 10; показать (b) // replert (10);
Что касается объекта
var c = {}; c.prop = true; var showprop = function (obj) {obj.prop = false} showprop (c); //c.prop=falseНекоторые люди думают, что приведенный выше пример состоит в том, чтобы пройти параметры в соответствии со ссылкой
Фактически, вышеуказанное все еще передает параметры в соответствии со значением. Когда ShowProp (C) проходит C в функцию, C фактически эквивалентен ссылке. Функция имеет obj.prop = false, что эквивалентно изменению ссылочного объекта на {prop: false}
Посмотрите на следующий пример
var c = {}; c.prop = true; var showprop = function (obj) {obj = new Object (); obj.prop = false return obj;} showprop (c); alert (c.prop); //истинныйЗдесь входящий OBJ был изменен. Если вы передаете параметры в соответствии с функцией по ссылке, модификации внутри функции определенно будут отражены снаружи.
Я надеюсь, что эта статья будет полезна для каждого программирования JavaScript.