Home > Software design >  Function class javascript not finding variable
Function class javascript not finding variable

Time:12-12

I have two javascript docs on my project. js (script.js) #1:

let func = new Function('return thisvar')
console.log(func())

js (script1.js) #2:

let thisvar = 'hello'

I get an error: ERROR:{@script.js line 4: cannot find variable 'thisvar'} I have tried using var instead of let or even window.thisvar What am I doing wrong?

CodePudding user response:

When you run func() in your first script, you haven't yet defined thisvar.

Just move the function call to your second script after you define the variable.

let func = new Function('return thisvar')
let thisvar = 'hello'
console.log(func())

CodePudding user response:

Readable "hello world" example (The console.log(func(your_error) return the same error - cannot find variable (You didn't declare the variable).

<span>example</span>
<script>
      let func = new Function("arg1", "return arg1")

      let thisvar = 'hello'; /* missing in your code */
      console.log(func(thisvar))
      // expected output: hello
      console.log(func("world"))
      // expected output: world
      console.log(func(your_error))
      // expected output: "Uncaught ReferenceError: your_error is not defined"
 </script>

In general it is more efficient to use function expression or function statement.

Read more here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/Function

  • Related