{"id":27320,"date":"2022-12-23T17:40:52","date_gmt":"2022-12-23T12:10:52","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/"},"modified":"2022-12-23T17:40:52","modified_gmt":"2022-12-23T12:10:52","slug":"solved-i-would-like-to-ask-how-to-explain-this-javascript-function","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/","title":{"rendered":"[Solved] I would like to ask how to explain this (javascript function)"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-46251465\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"46251465\" data-parentid=\"46250952\" data-score=\"0\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>I believe it should be because of lexical scoping or static scoping along with function scoping.<\/p>\n<p>lexical scoping says variable scope is dependent on when the function was created in your cases when function <em>b<\/em> was created num was scoped to global.<\/p>\n<pre><code>function b() {\n console.log(num)\/\/num is scoped to its parent function it was created in\n}\n\nfunction a() {\n  var num = 3;\/\/b will not have access to this num since it was not created here\n  arguments[0]();\n }\n num = 1;\n a(test)\n<\/code><\/pre>\n<p>But if it were dynamic scoping then a variables scope is based on order of execution in which case num would have been scope to the caller <em>a&#8217;s<\/em> num.<\/p>\n<p>if you try this snippet then it will correctly print 3.<\/p>\n<pre><code>function a(cb) {\n  function b() {\n   console.log(num)\n  }\/\/b is created here so it has access to num\n var num = 3;\n b();\n}\nnum = 1;\na();\n<\/code><\/pre>\n<p>You can read about static scoping and dynamic scoping in this question where static vs dynamic, function vs block scope is explained better.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved I would like to ask how to explain this (javascript function) <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] I believe it should be because of lexical scoping or static scoping along with function scoping. lexical scoping says variable scope is dependent on when the function was created in your cases when function b was created num was scoped to global. function b() { console.log(num)\/\/num is scoped to its parent function it was &#8230; <a title=\"[Solved] I would like to ask how to explain this (javascript function)\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/\" aria-label=\"More on [Solved] I would like to ask how to explain this (javascript function)\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[413,333,414],"class_list":["post-27320","post","type-post","status-publish","format-standard","hentry","category-solved","tag-function","tag-javascript","tag-scope"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] I would like to ask how to explain this (javascript function) - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] I would like to ask how to explain this (javascript function) - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] I believe it should be because of lexical scoping or static scoping along with function scoping. lexical scoping says variable scope is dependent on when the function was created in your cases when function b was created num was scoped to global. function b() { console.log(num)\/\/num is scoped to its parent function it was ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-23T12:10:52+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] I would like to ask how to explain this (javascript function)\",\"datePublished\":\"2022-12-23T12:10:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/\"},\"wordCount\":131,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"function\",\"javascript\",\"scope\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/\",\"name\":\"[Solved] I would like to ask how to explain this (javascript function) - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-12-23T12:10:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] I would like to ask how to explain this (javascript function)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] I would like to ask how to explain this (javascript function) - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] I would like to ask how to explain this (javascript function) - JassWeb","og_description":"[ad_1] I believe it should be because of lexical scoping or static scoping along with function scoping. lexical scoping says variable scope is dependent on when the function was created in your cases when function b was created num was scoped to global. function b() { console.log(num)\/\/num is scoped to its parent function it was ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/","og_site_name":"JassWeb","article_published_time":"2022-12-23T12:10:52+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] I would like to ask how to explain this (javascript function)","datePublished":"2022-12-23T12:10:52+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/"},"wordCount":131,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["function","javascript","scope"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/","url":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/","name":"[Solved] I would like to ask how to explain this (javascript function) - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-12-23T12:10:52+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-i-would-like-to-ask-how-to-explain-this-javascript-function\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] I would like to ask how to explain this (javascript function)"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/27320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=27320"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/27320\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=27320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=27320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=27320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}