Я пытаюсь понять объем этой обернутой функции.
componentWillMount = () => {
//-----------------------
// props accesible here:
//-----------------------
console.info(this.props);
$(function() {
var jqconsole = $('#console').jqconsole('Welcome to the console!\n', '>');
jqconsole.Write(
//-----------------------
// props inaccesible here:
//-----------------------
this.getMessagesFromJavascriptWindow(this.props.code) + '\n',
'jqconsole-output'
);
var startPrompt = function() {
// Start the prompt with history enabled.
jqconsole.Prompt(true, function(input) {
let transformedString;
try {
transformedString = eval(input);
// Output input with the class jqconsole-output.
jqconsole.Write(transformedString + '\n', 'jqconsole-output');
// Restart the input prompt.
startPrompt();
} catch (error) {
jqconsole.Write(error + '\n', 'jqconsole-output-error');
// Restart the input prompt.
startPrompt();
}
});
};
// Restart the input prompt.
startPrompt();
});
};
Я новичок в JQuery. Мне нужно передать аргумент этой анонимной функции при использовании оболочки JQuery. Может кто-нибудь объяснить это или показать мне соответствующие документы? Я не нашел.
редактировать:
Для некоторого контекста: то, что я делаю, происходит в методе componentWillMount компонентов React. И я пытаюсь получить доступ к реквизиту.
я внес некоторые правки @David
это доступно. const test = 5; $ (функция () {console.info (тест);});
мои правки действительно плохие, извините
@Spacemoose: Вы можете привести примеры проблемы с полный и очевидный? Что такое this? Что такое props? Что вы пытаетесь достичь?
почему все так торопятся с голосованием против и закрытием? Печальный. Я сделаю все возможное, чтобы обновить свой пост соответствующим образом через секунду.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Убедитесь, что контекст, в котором вы вызываете свою функцию, знает о тесте, иначе вы, очевидно, не сможете передать то, чего не знаете.
Затем действуйте так:
var self = this;
$(function( self ){ can access this.props here via self.props })
Вы всегда можете передавать параметры анонимным функциям, но контекст, в котором вы их вызываете, должен знать об этих параметрах. Так же и работает deferred:
/** define in some context */
var dfd = $.Deferred();
dfd.resolve( 5 );
/** define in some other context, that knows of the dfd above */
dfd.done( function ( param ) { console.info( param ); });
// result: 5
Что касается вашего редактирования:
var self = this; // before calling the anonymous function
Затем используйте
self.props
в анонимной функции.
Обновлено: Я думаю, что в вашем случае вам даже не нужно передавать какие-либо параметры. Все, что вам нужно, это позаботиться о this. В случае сомнений сохраните контекст в переменной.
Я обновил свой пост полным примером кода FYI.
Для расширения: dfd.resolve( 5 ); может даже быть вызван снова в каком-то третьем контексте, анонимная функция все равно получит 5 в качестве входного параметра. Этот отложенный пример демонстрирует использование анонимной функции, поэтому вы видите, как параметры могут быть переданы различным функциям в разных контекстах.
Спасибо за ваши усилия. Я прочитаю это и посмотрю, понимаю ли я.
Я добавил некоторые дополнения после репликации вашей обновленной проблемы, см. EDIT в моем сообщении.