小编ann*_*nni的帖子

javascript中警报功能的意外行为

我正在试验警报,但警报不起作用,因为我预期看到下面的线条:

var tobealerted = function(){return 'worked!'};
Run Code Online (Sandbox Code Playgroud)

现在当我提醒这个:

alert(tobealerted());
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作!现在

alert(tobealerted);
Run Code Online (Sandbox Code Playgroud)

在这个我删除括号.现在它警告function(){return "worked"}不是worked! 现在我认为它可能是javascript的一个功能,它会提醒任何文本,而不是在引号然后我写道:

alert(worked!)
Run Code Online (Sandbox Code Playgroud)

但谷歌控制台抛出异常worked!是未定义的,所以我的想法是错误的.然后我又写了这个

alert(function(){})
Run Code Online (Sandbox Code Playgroud)

而且你知道它的警告function(){}!然后我认为警报只允许在没有引号的情况下发出警告.然后又写道:

alert(if(){}) //if is not defined
alert(for(){}) //for is not defined
alert(while(){}) //while is not define
Run Code Online (Sandbox Code Playgroud)

但这些对我来说没有用,我搜索并发现了一些东西,从我的搜索中我发现了这个

函数是第一类对象

并根据维基百科:

在计算机科学中,如果将编程语言视为一等公民,则称其具有一流的功能.具体来说,这意味着该语言支持将函数作为参数传递给其他函数,将它们作为其他函数的值返回,并将它们分配给变量或将它们存储在数据结构中

所以我的问题是

为什么alert功能只允许function (){}被警告而不是其他人

如果你认为这是因为该函数是一流的对象,那么我不这么认为,因为我没有将这个函数(最后一个)分配给任何变量,它既不返回任何内容 alert(function(){})

我非常好奇也很困惑!谢谢!

javascript alert function first-class

0
推荐指数
1
解决办法
186
查看次数

标签 统计

alert ×1

first-class ×1

function ×1

javascript ×1