Selalu lupakan penggunaan kedua hal ini dan tuliskan untuk membuat catatan.
Fungsi mereka persis sama, tetapi parameter yang disahkan
menerapkan
Apply menerima dua parameter. Yang pertama merumuskan penunjuk objek ini di badan fungsi, dan yang kedua adalah set dengan subskrip (objek dapat dilalui). Metode Apply melewati elemen dalam set ini sebagai parameter ke fungsi yang dipanggil:
var func = function (a, c, c) {alert ([a, b, c]); // media1,2,3 mediabunc.Apply(null, [1,2,3]);panggilan
Parameter yang dilewati dalam panggilan tidak diperbaiki. Sama seperti yang diterapkan adalah bahwa parameter pertama juga mewakili titik ini pada badan fungsi. Setelah parameter kedua dimulai, setiap parameter diteruskan ke fungsi secara berurutan:
var func = function (a, b, c) {alert ([a, b, c]); // media1,2,3 mediabunc.call(null, 1,2,3);Panggilan adalah gula sintaksis dengan baik. Jika parameter pertama adalah nol, ini di badan fungsi menunjuk ke objek host, yang merupakan jendela di browser.
Penggunaan panggilan dan melamar
1. Ubah poin ini
Contoh di atas adalah
2. function.prototype.bind
Simulate function.prototype.bind
Function.prototype.bind = function (konteks) {var self = this; return function () {return self.apply (konteks, argumen); }}; var obj = {name: 'cxs'}; var func = function () {alert (this.name); // cxs} .bind (obj); fun ();