JavaScript:"functions are executable"是什么意思?



我目前正在阅读John Resig JavaScript Ninja的书。在那里,他写道,函数具有可执行的"超能力"。

我不明白"可执行"是什么意思。

这是否意味着JavaScript解释器将存在的代码作为字符串转换为机器代码?然后由 CPU 执行哪个?但在这种情况下:其他数据也由 CPU 处理。区别在哪里?

有人能以一种非计算机科学毕业生可以理解的方式解释"可执行文件"一词吗?

我假设一个更简单的解释:这意味着可以调用一个函数(作为一个特殊对象),而一个对象通常可能不是。

var foo = function() {};
foo(); // call or "execute" it
var bar = {};
bar(); // TypeError: bar is not a function

从硬件和操作系统的POV来看,(不可执行的)数据和可执行指令是有区别的,但是像javascript这样的高级语言旨在使人们摆脱这些细节。

这意味着函数是 CPU 可以执行的一组指令。 与其他编程结构(如变量和对象)相比,它们只是保存数据,这有点特别。

擅长像JavaScript这样的语言,其中函数是对象。 "可执行"是特别的。

所以像这样成像。 a是可变对象,这意味着它保存数据

 a = 10

计算机知道a具有10值,但它不知道它是什么意思,也不知道该怎么处理它。另一方面,函数对象保存指令

function a(){do{...}while(b=10)}

计算机知道该怎么做。 它可以接受a的指令并逐个执行。

相关内容

最新更新