{"id":4179,"date":"2017-08-21T15:25:27","date_gmt":"2017-08-21T15:25:27","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-pass-functions-as-parameters-in-netsuite-suitescript-2\/"},"modified":"2026-07-28T18:26:29","modified_gmt":"2026-07-28T18:26:29","slug":"comment-passer-des-fonctions-en-tant-que-parametres-dans-netsuite-suitescript","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-passer-des-fonctions-en-tant-que-parametres-dans-netsuite-suitescript\/","title":{"rendered":"Comment passer des fonctions en tant que param\u00e8tres dans NetSuite SuiteScript"},"content":{"rendered":"","protected":false},"template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","ga_subtitle":"Tirez parti de la flexibilit\u00e9 de JavaScript dans NetSuite SuiteScript en transmettant des fonctions en tant qu\u2019arguments afin de permettre la journalisation dynamique ou la mise en place de m\u00e9canismes de rappel.","ga_short_answer":"Oui, les fonctions peuvent \u00eatre transmises en tant que param\u00e8tres en JavaScript, y compris dans NetSuite SuiteScript. Cette technique permet d\u2019obtenir un comportement dynamique, comme le choix de diff\u00e9rentes m\u00e9thodes de journalisation ou la mise en \u0153uvre de fonctions de rappel. En d\u00e9finissant une fonction qui accepte une autre fonction en tant qu\u2019argument, les d\u00e9veloppeurs peuvent cr\u00e9er des structures de code flexibles et r\u00e9utilisables.","ga_scenario":"Les d\u00e9veloppeurs sont souvent confront\u00e9s \u00e0 des situations o\u00f9 ils doivent ex\u00e9cuter une logique diff\u00e9rente en fonction de conditions sp\u00e9cifiques ou fournir un comportement personnalis\u00e9 au sein d\u2019une fonction g\u00e9n\u00e9rique. Une exigence courante consiste \u00e0 s\u00e9lectionner dynamiquement un m\u00e9canisme de journalisation ou \u00e0 mettre en \u0153uvre des mod\u00e8les de rappel. Il est essentiel de comprendre comment passer des fonctions en tant que param\u00e8tres pour b\u00e9n\u00e9ficier de cette flexibilit\u00e9 dans NetSuite SuiteScript.","ga_solution":"JavaScript permet de traiter les fonctions comme des \u00e9l\u00e9ments \u00e0 part enti\u00e8re, ce qui signifie qu\u2019elles peuvent \u00eatre affect\u00e9es \u00e0 des variables, transmises en tant qu\u2019arguments \u00e0 d\u2019autres fonctions et renvoy\u00e9es par des fonctions. Cette fonctionnalit\u00e9 est particuli\u00e8rement utile dans NetSuite SuiteScript pour cr\u00e9er un code flexible et modulaire. Prenons l\u2019exemple suivant, qui illustre comment passer des fonctions en tant que param\u00e8tres. Cette configuration permet une s\u00e9lection dynamique des m\u00e9canismes de journalisation en fonction du contexte d\u2019ex\u00e9cution du script. Commencez par d\u00e9finir les fonctions qui seront pass\u00e9es en tant que param\u00e8tres :\n\n```\njavascript\nfunction f1(text){\n    console.log(text);\n}\n\n\/\/ In a SuiteScript 2.x environment, 'log' would be imported from the 'N\/log' module.\nfunction f2(text){\n    log.debug({\n        title: 'Debug text',\n        details: text\n    });\n}\n```\n\n\n\nEnsuite, d\u00e9finissez une fonction qui accepte une autre fonction en param\u00e8tre. Ce param\u00e8tre \u00ab logger \u00bb sera appel\u00e9 en interne par `f3`\n\n.\n\n```\njavascript\nfunction f3(logger){\n    \/\/Super complicated logic here\n    var a = 1+1;\n    logger(a);\n    return a;\n}\n```\n\n\n\nEnfin, impl\u00e9mentez la logique permettant de s\u00e9lectionner dynamiquement la fonction \u00e0 transmettre \u00e0 `f3`\n\nen fonction du contexte d\u2019ex\u00e9cution. Dans SuiteScript 2.x, le module `N\/runtime`\n\nest utilis\u00e9 pour d\u00e9terminer le contexte.\n\n```\njavascript\n\/\/ In a SuiteScript 2.x environment, 'runtime' would be imported from the 'N\/runtime' module.\nvar result;\nif (runtime.executionContext === runtime.ContextType.CLIENT) {\n    result = f3(f1);\n} else {\n    result = f3(f2);\n}\n```\n\nCette approche est \u00e9galement tr\u00e8s efficace pour configurer des fonctions de rappel, permettre des op\u00e9rations asynchrones ou la gestion personnalis\u00e9e des \u00e9v\u00e9nements.","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T17:25:27+02:00","ga_date_verified":"2026-07-05","ga_source_subject":"Can I pass a function as a parameter in javascript?","ga_ans_id":"ANS-0520","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The function `nlapiLogExecution` is a SuiteScript 1.0 function and has been replaced by the `N\/log` module in SuiteScript 2.x for logging purposes.; The method of determining the execution context (client vs. server) using a global `execution` variable is characteristic of SuiteScript 1.0; SuiteScript 2.x uses the `N\/runtime` module to access the execution context.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-4179","qa_entry","type-qa_entry","status-publish","hentry","ga_category-developpement-suitescript","ga_category-suitescript-development","ga_audience-developer-suitescript","ga_difficulty-niveau-intermediaire"],"taxonomy_info":{"ga_category":[{"value":108,"label":"D\u00e9veloppement SuiteScript"},{"value":23,"label":"SuiteScript Development"},{"value":108,"label":"D\u00e9veloppement SuiteScript"}],"ga_audience":[{"value":10,"label":"Developer\/SuiteScript"}],"ga_difficulty":[{"value":92,"label":"Niveau interm\u00e9diaire"}]},"featured_image_src_large":[],"author_info":[],"comment_info":"","_links":{"self":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry"}],"about":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/types\/qa_entry"}],"version-history":[{"count":1,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4179\/revisions"}],"predecessor-version":[{"id":6100,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4179\/revisions\/6100"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=4179"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=4179"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=4179"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=4179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}