Это лучшее объяснение, которое я видел. Понимать JavaScripts это с помощью Clarity
Ссылка эта ALLWAYS означает (и содержит значение) объект - особый объект - и он обычно используется внутри функции или метода, хотя он может использоваться вне функции в глобальной области. Обратите внимание, что когда мы используем строгий режим, это содержит значение неопределенных в глобальных функциях и анонимных функциях, которые не привязаны к какому-либо объекту.
Существуют четыре условия, в которых это может запутать:
- Когда мы передаем метод (который использует этот ) в качестве параметра, который будет использоваться в качестве функции обратного вызова.
- Другой пример, когда это неправильно понимается, - это когда мы используем внутренний метод (замыкание). Важно отметить, что закрытие не может получить доступ к переменной этой внешней функции внешней функции], используя это ключевое слово, потому что эта переменная доступна только самой функции, а не внутренними функциями.
- Используя этот , когда метод присваивается переменной. Значение этого привязано к другому объекту, если мы назначим метод, который использует это для переменной
- Используя этот при использовании bind, apply и
Он дает примеры кода, объяснения и исправления кода, которые, как я думал, очень полезны.
Согласно этому ответу, полученному на репо rhea github:
https://github.com/amqp/rhea/issues/200#issuecomment-469220880
Фильтр должен быть описанным значением. Попробуйте что-то вроде этого:
blockquote>connection.open_receiver({ source: { address: 'amq.match', filter: { 'foo': amqp_types.wrap_described({ 'nat': 'it', 'prod': 'a22', 'x-match': 'all' }, 0x468C00000002) } } });
где:
var amqp_types = require('rhea').types;
Это работает только с Qpid cpp, оно не работает с ActiveMQ и Qpid java.