2016-01-21 3 views
2

Я сейчас читаю книгу Джона Ресига JavaScript Ninja. Там он пишет, что функции имеют «супермощность» исполняемого.JavaScript: что означает «функции исполняемые»?

Я не понимаю, что означает «исполняемый».

Означает ли это, что интерпретатор JavaScript принимает код, который существует в виде строки и переводит его в машинный код? Что затем выполняется процессором? Но в этом случае: Другие данные также обрабатываются ЦП. Где дифференциация?

Может ли кто-нибудь объяснить термин «исполняемый» таким образом, который понятен для выпускника без компьютерной науки?

+0

Строки также исполняются, если вы передадите их на eval –

ответ

0

это означает, что функция представляет собой набор инструкций, которые может выполнять процессор. по сравнению с другими программирующими конструкциями, такими как переменные и объекты, которые просто хранят данные, это особый вид.

особенно в таких языках, как javascript, где функции являются объектами. «исполняемый» является специальным претативом.

так образный как это. a является изменяемый объект, это означает, что он держит данные

a = 10 

компьютер знает, что a имеет значение 10, но он не знает, что это значит, и что делать с ним. функция объекта на другой руке держит инструкции

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

это MENAS компьютер знает, что делать с. он может принимать инструкции a и выполнять их один за другим.

+0

Да. Имеет смысл. Большое спасибо. – bo256

+0

Можно сказать, что функция содержит инструкции для CPU. – bo256

+0

да .. Конечно, все это зависит от фактической реализации языка и компилятора/интерпретатора .. но в концептуальном смысле функция представляет собой набор исполняемых инструкций .. – CaldasGSM

3

Я предполагаю более простую интерпретацию: это означает, что можно вызвать функцию (как специальный объект), в то время как объект вообще не может быть.

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

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

С POV аппаратных средств и операционной системы есть различие (неисполняемых) данных и исполняемых команд, но языки высокого уровня, такие как Javascript предназначены для свободных людей с такой степенью детализации.

Смежные вопросы