Function call - garevna/js-course GitHub Wiki

:mortar_board: Биндинг и каррирование


:mortar_board: call()

Первым обязательным аргументом метода является ссылка на объект, в контексте которого будет вызвана функция

window.name = "window"

function func () {
    console.log ( this.name )
}

var figure = {
    name: "figure"
}

var sample = {
    name: "sample"
}

func ()               // window
func.call ( figure )  // figure
func.call ( sample )  // sample

Далее может следовать перечень аргументов:

function func () {
    console.log ( this.name, arguments )
}

var figure = { name: "figure" }
var sample = { name: "sample" }

func.call ( figure, 9, false, "Hello" )
func.call ( sample, 5, 1, "Bye" )
Результат в консоли:
figure ► Arguments(3) [ 9, false, "Hello", callee: ƒ, Symbol(Symbol.iterator): ƒ ]
sample ► Arguments(3) [ 5, 1, "Bye", callee: ƒ, Symbol(Symbol.iterator): ƒ ]