Як у Javascript можна прив’язати аргументи до функції без прив'язки thisпараметра?
Наприклад:
//Example function.
var c = function(a, b, c, callback) {};
//Bind values 1, 2, and 3 to a, b, and c, leave callback unbound.
var b = c.bind(null, 1, 2, 3); //How can I do this without binding scope?
Як я можу уникнути побічного ефекту від необхідності також прив’язувати область функції (наприклад, встановлення this= null)?
Редагувати:
Вибачте за непорозуміння. Я хочу прив’язати аргументи, а потім зможу викликати зв'язану функцію пізніше і змусити її поводитись так, як ніби я викликав початкову функцію і передав їй зв'язані аргументи:
var x = 'outside object';
var obj = {
x: 'inside object',
c: function(a, b, c, callback) {
console.log(this.x);
}
};
var b = obj.c.bind(null, 1, 2, 3);
//These should both have exact same output.
obj.c(1, 2, 3, function(){});
b(function(){});
//The following works, but I was hoping there was a better way:
var b = obj.c.bind(obj, 1, 2, 3); //Anyway to make it work without typing obj twice?
Я все ще нова в цьому, вибачте за плутанину.
Дякую!
bind()бути проблематично null? Здається, добре працює у ФФ.
thisповністю розв'язати JavaScript. Це завжди щось означає . Тому прив'язка thisдо функції, thisщо вкладається, має багато сенсу.
this?var b = c.bind(this, 1,2,3);