|
|||||||
Время создания: 24.05.2011 23:49
Раздел: Компьютер - Программирование - Java Script
Запись: xintrea/mytetra_syncro/master/base/0000003519/text.html на raw.github.com
|
|||||||
|
|||||||
Давайте напишем простую функцию, которая возвращает массив из трех элементов — текущего значения this и двух аргументов, переданных в функцию. function makeArray(arg1, arg2){ return [ this, arg1, arg2 ]; } Зачастую возникает необходимость переопределить значение this. Если вы помните, функции в JavaScript являются объектами. На практике это означает, что у функций есть предопределенные методы. apply() и call() — два из них. Они позволяют переопределять значение this: var car = { year: 2008, model: 'Dodge Bailout' }; makeArray.apply( car, [ 'one', 'two' ] ); // => [ car, 'one', 'two' ] makeArray.call( car, 'one', 'two' ); // => [ car, 'one', 'two' ] Эти два метода очень похожи. Первый параметр переопределяет this. Различия между ними заключаются в последющих аргументах: Function.apply() принимает массив значений, которые будут переданы функции, а Function.call() принимает аргументы раздельно. Другими словами, если требуется переопределить значение this, не копируя функцию в другой объект, можно использовать myFunction.apply( obj, ... ) или myFunction.call( obj, ... ). |
|||||||
Так же в этом разделе:
|
|||||||
![]() |
|||||||
|
|||||||
|