Источник: http://forum.jscourse.com/t/04-konspekt-metody/579
Автор конспекта: @NikolayПравки: @dmitry
Метод – это какое-то действие которое связанно с объектом и выполняет определенную функцию. Методы привязаны к объектам. Например все числа имеют метод toString
, все строки – метод split
.
Math.round(10.10); // вызов метода
Разные методы могут как принимать аргументы ((10.10) - аргумент), так и не принимать. Также следует учитывать, что конкретный метод может вести себя по разному в зависимости от того, что ему передано в качестве аргументов.
Если метод split
вызывается с пустой строк(без аргумента), то он разбивает строку посимвольно, иначе - использует заданный аргумент и разбивает по нему.
var str = 'http://forum.jscourse.com/t/02-zadanie-igra-ugadajka-pochitat-pro-massivy-obekty-czikly/482';
str.split('/');
Output:
[ "http:", "", "forum.jscourse.com", "t", "02-zadanie-igra-ugadajka-pochitat-pro-massivy-obekty-czikly", "482" ]
Метод может изменять объект/значение с которым он вызван. Например метод push
.
var arr = [];
arr.push('one');
console.log(arr); // ["one"]
Следует очень внимательно использовать методы, которые изменяют объекты, переданные им для операций. Это важно потому что этот переданный объект может быть использован в другой части кода, что приведет к ошибкам. Лучше сделать копию обьекта/значения с которым планируется работать.
Для копирование массивов чаще всего используется метод slice
. Синтаксис - arrayObj.slice( start[, end] )
var obj = {};
var arr = [obj, 'two', 'three', 'four', 'five'];
var arrCopy = arr.slice();
var arrCopy1 = arr.slice(1);
var arrCopy2 = arr.slice(1, 2);
console.log('arrCopy', arrCopy); // arrCopy [{}, "two", "three", "four", "five"]
console.log('arrCopy1', arrCopy1); // arrCopy1 ["two", "three", "four", "five"]
console.log('arrCopy2', arrCopy2); //arrCopy2 ["two"]
Если мы сравним объкты – то они разные
arr === arrCopy // false
А если сравним первые елементы этих обьектов, то они одинаковые
arr[0] === arrCopy[0]
// true
Копию обьекта также можно сделать с помощь следующих методов: с помощью JSON.stringify
– превратить обьект в строку, а с помощью метода JSON.parse
– обратно в обьект.
Добавить элемент в массив (с конца) можно использовать следующие способы:
arr[arr.length - 1] = 'item'; // или
arr.push('item');
Лучше использовать метод push
- он понятней
Метод sort изменяет массив и если его вызывать без аргумента, то он пытается привести все елементы массива к строкам и сравнивает их. Синтаксис - arrayObj.sort( [sortFunction] )
Если вы хотите использовать метод, которые не поддерживается той или иной версией браузера, то необходимо использовать PolyFill (полизаполнения).
PolyFill - это отрывок кода (скрипт) который вставляется в браузер, и который реализует возможность использовать конкретный метод (функцию) в браузерах которые ее не поддерживают.
Следует обращать внимание, какие методы являются стандартными и поддерживаться всеми браузерами, а какие – нет.
Для выполнения такой проверки есть полезный ресурс - http://caniuse.com/