Node: Strange error about function

Created on 10 Jan 2017  路  2Comments  路  Source: nodejs/node

  • Version:v7.4.0
  • Platform:Linux amd64 or Windows
  • Subsystem: Ubuntu 16.04 2.6.32-504.16.2.el6.x86_64 #1 SMP Tue Mar 10 17:01:00 EDT 2015 x86_64 GNU/Linux


When run the code:
`var t, a;

var myfun = function() {
return [1, 2];
}

[t, a] = myfun();

console.log(t);`

There will be an error:

[t, a] = myfun();
^

TypeError: myfun is not a function
at Object. (/remote/arc/home/haifeng/Benchmark/benchmarks/newFramework/test/benchmark.js:7:10)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:420:7)
at startup (bootstrap_node.js:139:9)
at bootstrap_node.js:535:3

After modifying the code as:

`var myfun = function() {
return [1, 2];
}

var t, a;
[t, a] = myfun();

console.log(t);`

It will work fine.

Could you please explain why?

Thanks

invalid question

Most helpful comment

Automatic semicolon insertion at work. This code:

var myfun = function() {
return [1, 2];
}

[t, a] = myfun();

Is parsed as:

var myfun = function() {return [1, 2];}[t, a] = myfun();

Put a semicolon after the } to make it parse as intended. Another example of why semicolon-less style is evil.

All 2 comments

Automatic semicolon insertion at work. This code:

var myfun = function() {
return [1, 2];
}

[t, a] = myfun();

Is parsed as:

var myfun = function() {return [1, 2];}[t, a] = myfun();

Put a semicolon after the } to make it parse as intended. Another example of why semicolon-less style is evil.

Thanks for your prompt response

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mcollina picture mcollina  路  3Comments

vsemozhetbyt picture vsemozhetbyt  路  3Comments

danialkhansari picture danialkhansari  路  3Comments

srl295 picture srl295  路  3Comments

akdor1154 picture akdor1154  路  3Comments