JavaScript:"函数是可执行的"意思?

时间:2016-01-21 07:39:18

标签: javascript algorithm

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

我不明白什么是可执行的"装置

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

有人可以解释术语"可执行文件"以某种非计算机科学毕业生可以理解的方式?

2 个答案:

答案 0 :(得分:3)

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

var foo = function() {};
foo(); // call or "execute" it

var bar = {};
bar(); // TypeError: bar is not a function

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

答案 1 :(得分:0)

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

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

像这样的像。 a是变量对象,表示它包含数据

 a = 10

计算机知道a具有值10,但它不知道它意味着什么,或者如何处理它。 另一方面,功能对象包含指令

function a(){do{...}while(b=10)}
计算机知道如何处理这个问题。它可以接受a的指令并逐个执行..