Предполагается, что в области ограничения (если ни один из них не будет в глобальном масштабе, таком как window
), существует метод, называемый methodA. Опять же, потому что это действительно включенная область охвата), она напомнит ей и назначит ей использовать также через объект а. Таким образом, вы можете выполнить его: methodA()
или a.methodA()
Edit объяснить закрытие: Хотя Javascript очень похож на Java/C++ в синтаксисе это совсем другое, чем оба из них в том смысле, что, когда функция конкретизируется как объект, он запоминает область, в которой он был создан. Я бы очень рекомендовал, чтобы кто-то делал больше, чем случайный JS (если есть такая вещь), чтобы посмотреть на this article. this
в JS будет deffer зависит от того, был ли он создан внутри , созданный экземпляр функция - AKA: new MyClass()
. Обращаясь к буквальному объекта, например:
var myObj={a:this.b}
не будет создавать новый this
и по умолчанию относятся к области видимости. Если ни один не был создан, он будет глобальным объектом, например window
, в браузере
Что именно вы не понимаете? '.bind (это)'? Вы прочитали [** документацию **] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) о '.bind'? Что еще остается непонятным после того, как вы его прочитали? –
делает 'methodA' не методом' a', а автономной функцией – dandavis
создается объект с именем 'a', в котором есть 1 элемент, функция' methodA', которая определена в объем 'a'. связывание связано с передачей этого значения этой функции. поэтому вы смотрите на нечто более похожее: 'this.methodA = function() {}; var a = {methodA: this.methodA.bind (this)}; ' – Fallenreaper