function a() { return function () { }; }
alert(a() == undefined); // false
请问这个 alert(a()==?) 可以返回 true?
不可以。明显函数a返回了一个函数,自然不可能是undefined了。
你看的这个应该是示例代码吧?只是告诉你没返回undefined而已,或者是作者疏忽了,或者是作者告诉你不要被返回函数未返回结果所忽悠。
代码修改为 alert(a()()==undefined),这个时候就是了。
此外,要想返回true,还可以 是 alert(typeof a() == 'function')。
代码我没写全
function a() { return function b() { return this; }; } alert(a()()==window);
现在差不多都明白了,不管怎么嵌套,嵌套部分只会返回函数,最终的this还是 window
alert(a() instanceof Function);
a(),返回一个function,然后直接输出function的名字的话,是会打印出函数体的。所以要==成立,可以在后面跟一个和函数体一样的字符串。
function a() { return function b() { }; } alert(a() == "b");
完全不对
@凡图: 如果你觉得b就是函数体的话,我无话可说。
@凡图: 你完全可以试试如下语句:
function a() { return function b() {}; } alert(a() == "function b() {}");
@幻天芒: 你这个回答真是醉了。这个肯定返回true。
@a_boy_who_likes_dogs: 题主问了,如何才能返回true。这代码刚好就是这效果。另外,虽然结果是返回true,那这不重要,重要的是能否理解为什么返回true。那如果是如下语句呢:
function a() { return function b() {}; } alert(a() == "function b(){}");