Это звучит, как вы ищете один из следующих стандартных функций JavaScript:
Поскольку вы не проходя никаких параметров в функция, либо будет работать нормально, но call()
, вероятно, лучший выбор.
Это позволяет вам вызывать функцию, устанавливая значение this
внутри функции независимо от того, что вы хотите. Так что для вашего случая, это может выглядеть примерно так:
Meteor.publish("myList", function() {
// sends the current function's `this` value to the other function, so the
// other function can access it as its own `this`
myFunction.call(this);
});
function myFunction() {
// the value of `this` will be whatever you passed to the `call()` method
console.log(this);
}
Обратите внимание, что по умолчанию при вызове функции по себе (без оператора точки, call()
, apply()
, или с помощью другого специального метода bind()
) , значением функции this
будет глобальный объект (специальный объект с именем global
на сервере или специальный объект window
в браузере). Если вы используете строгий режим ES5 (вы бы знали, есть ли у вас), то значение по умолчанию будет null
.
Не знаете точно, как насчет установки переменной сеанса и получения результатов? – Sasikanth
@sasikanth 'Meteor.publish' - это серверная функция, а' Session' - клиентская функция. – sbking
Я понимаю, что это не отвечает на ваш вопрос, но я обычно предпочитаю делать следующее: var publish = this; myFunction (публикация, другоеArg0, otherArg1); – zorlak