给定一个功能:
function x(arg) { return 30; }
Run Code Online (Sandbox Code Playgroud)
您可以通过两种方式调用它:
result = x(4);
result = new x(4);
Run Code Online (Sandbox Code Playgroud)
第一个返回30,第二个返回一个对象.
如何检测函数本身内部调用函数的方式?
无论您的解决方案是什么,它都必须使用以下调用:
var Z = new x();
Z.lolol = x;
Z.lolol();
Run Code Online (Sandbox Code Playgroud)
目前认为所有解决方案Z.lolol()都将其称为构造函数.