После изучения традиционных объектно-ориентированных языков, таких как Java C ++, мне немного неудобно, когда я перехожу в JavaScript, особенно так называемую функцию объекта в JavaScript, которую иногда меня путают. Поэтому я просто разобрал некоторые концептуальные вещи ниже, чтобы облегчить обучение и понимание, и объясню их в сочетании с некоторыми ориентированными на Java, ориентированными на Java, ориентированными на Java.
Давайте сначала поймем несколько концепций:
1. Прежде всего, что объект ссылается в Ecmascript? В Ecmascript есть 5 простых типов данных: неопределенные, нулевые, логические, число, строка. Существует также сложный тип данных, то есть объект.
2. тип ссылки-концепция класса в Java
Значение типа ссылки --- Концепция объектов в Java
3. Функции ---- Концепция методов в Java
4.var --- объявляет оператора переменной. Поскольку переменная JS имеет свободный тип, свободный означает, что ее можно использовать для сохранения любых данных. Переменная используется только для представления заполнителя, поэтому переменная не должна указывать строку, int и просто var. Обратите внимание, что объект может быть объявлен с вар.
5.object (), что такое --- конструктор объекта в Java, конструктор объекта в JS.
Объект
JS может динамически добавлять свойства и методы.
Например, создайте экземпляр объекта
var obj = new Object();
Переменная OBJ является объектом New Object ().
Следующий:
var obj = new object (); obj.name = 'zeng'; obj.age = 12; obj.fun = function () {console.log (this.name+this.age);}Но это не очень инкапсуляция, поэтому буквальное представление объекта чаще используется
var obj = {name: 'Zeng', возраст: 12, fun: function () {console.log (this.name+this.age); }} obj.fun (); // распечатать: Zeng12Доступ к свойствам объекта:
1. Используйте кронштейны
console.log(obj["name"]);
2. Используйте точки, рекомендуется использовать этот метод
console.log(obj.name );
функция
Функции являются важной частью любого языка. Функции называются JS. Вы также можете понять, что это методы Java и языковые функции C, все равно. Однако с точки зрения объявления и использования, функции JS могут быть очень разными.
Пример функции:
function fun () {return "Пример";} console.log (fun ()); // Вывод: 'Пример'Это также возможно:
var fun = function () {return "Создать функции с использованием экспрессии"}; console.log (fun ()); // Вывод: «Создать функции с использованием выражений»В приведенном выше примере вы заметите, что функция не имеет имени функции, только одно имя переменной, и в конце выражения есть другая; полуколон,
Вы можете просто понять это как выражение, которое объявляет переменную. Объявление других переменных написано так:
var name = "Zeng"; // есть имена переменных и полуколоны
Давайте возьмем пример с параметрами:
function fun () {return Arguments [0] + Arguments [1] + Arguments [2];} console.log (fun («это есть», «a», «пример»)); // Вывод: «Это пример»Разве это не странно? Прежде всего, функция, которую я создал, не имеет параметров. При вызове приведены параметры, и параметры могут быть получены и возвращены в функции.
На самом деле, здесь нам нужно подчеркнуть, что функция JS не возражает против прохождения в нескольких параметрах, и при этом не волнует, какой тип параметров! Причина в том, что внутренние параметры приема функции хранятся в массиве!
Массив - это аргументы выше. Конечно, массив не возражает, передавая несколько параметров. Если есть параметры, я добавлю его, и если нет параметров, я буду нулевым.
Мы можем использовать эту функцию в качестве примера:
Перегрузка методов имитации-использовать разные параметры для выполнения разных реакций
function fun () {if (arguments.length == 1) {return Arguments [0]*10; } if (arguments.length == 2) {return (аргументы [0]+аргументы [1])*10; } return 10;} console.log (Fun (11,111)); // возвращение 1220! ! ! !Нет перегрузки:
Приведенный выше пример является перегрузкой имитационных функций. Зачем мне подражать? В ближайшее время я смогу создать несколько функций с различными параметрами.
Function Fun (num1) {return "Веселье с одним параметром"} function fun (num1, num2) {return "веселье с двумя параметрами";} console.log (fun (11)); // Вывод "Веселье с двумя параметрами"Он явно называется функцией с одним параметром, но она действительно выполняется с двумя параметрами. Причина: JS определяет две функции с тем же именем, и имя принадлежит только к функции, определенной позже! ! ! Так что в JS нет функции перегрузки.
Имя функции является указателем:
var fun = function (num1, num2) {return num1+num2;}; var new_fun = fun; fun = null; // Установить функцию в nullconsole.log (new_fun (10,20)); // Вывод: 30 -ancole.log (развлечение (10,20)); // Исключение: веселье не является функциейВидно, что, хотя и весело = null; Перед этим var new_fun = развлечение; то есть указатель также указал на new_fun, поэтому функция new_fun () все еще может быть выполнена, и тело функции не является аннулированным
Функции также могут использоваться в качестве значений:
Функция add (fun, num) {return fun (num);} функция add_10 (num) {return num+10;} console.log (add (add_10,200)); // Вывод: 210Это можно объяснить следующим образом:
Функция add (function, parameter) {return function (пропущенное параметр);}Arguments.callee функции
Вот рекурсивный пример
function fun (num) {if (num <= 1) {console.log (num); возврат 1; } else {console.log (num); вернуть num * arguments.callee (num-1); }} console.log (fun (3)); // Вывод 6