我尝试对警报,但警报这么想的工作如我所料低于线看:意外行为
var tobealerted = function(){return 'worked!'};
现在
当我提醒这一点:
alert(tobealerted());
这将正常工作!现在
alert(tobealerted);
在此我删除了括号。现在它提醒function(){return "worked"}
不worked!
现在我认为这可能是JavaScript的一个功能,那么我写的,它会提醒任何文本没有引号是:
alert(worked!)
,但谷歌的控制台抛出异常worked!
是不确定的,所以我的思维是错误的。后来我又写了这个
alert(function(){})
,你知道这是什么惊动function(){}
!然后我认为警报只会让这样的声明在没有引号的情况下被警示。然后再次写道:
alert(if(){}) //if is not defined
alert(for(){}) //for is not defined
alert(while(){}) //while is not define
但这些并没有奏效为了这个,我搜查,发现了什么,从我的搜索,我发现这个
函数是第一类对象
,并根据维基百科:
在计算机科学中,一种编程语言据说有 如果把功能当作一等公民来对待一流的功能。 具体而言,这意味着该语言支持传递功能 其他函数的参数,返回它们来自其他 函数的值,并将它们分配给变量或将它们存储在数据 结构
所以我的问题是
为什么
alert
功能只允许function(){}
被惊动而不是其他
,如果你认为这是因为该函数是第一类对象的话,我不这么认为,因为 我没有这个功能(最后一个)分配给任何变量既不则返回alert(function(){})
我是什么非常好奇,也很困惑! 谢谢!
['message'是您想要在警报对话框中显示的可选字符串**,或者,也可以是转换为字符串并显示**的对象。](https://developer.mozilla .org/en-US/docs/Web/API/Window.alert) – DCoder
*“我认为它可能是javascript的一个功能,它会提醒任何文本而不用引号”*通过这种逻辑,输出应该是'tobealerted'。 –