javascript是从上到下执行的吗?

时间:2014-10-05 01:14:10

标签: javascript

我正在从codecademy开始上课,并且不了解javascript执行的顺序。

我从Penguin构造函数开始:

function Penguin(name) {
  this.name = name;
  this.numLegs = 2;
}

//然后我在这里创建一个Emperor类,让它继承自Penguin

function Emperor(name) {
 this.name = name;
}

Emperor.prototype = new Penguin();

//创建一个“emperor”对象并打印它拥有的腿数

var me = new Emperor("John");

console.log(me.numLegs);

我的问题:我的印象是我可以在继承之前定义我的对象,并且仍然控制台记录numLegs属性。在创建任何“empeor”对象之前,是否必须设置继承?如果是这样,这是否意味着javascript从上到下读取,因为我听到了不同的东西。

2 个答案:

答案 0 :(得分:1)

Javascript语句按它们出现的顺序执行。

但是,函数声明语句被提升到它们的包含范围,所以它们的函数甚至在语句出现之前就已存在。

对函数进行操作的任何语句(例如prototype)仍按正常顺序运行。

答案 1 :(得分:0)

是的,确实从上到下执行。 但是,函数定义(不适用于为变量分配的匿名函数)和var声明(不是赋值,只是声明)被提升到当前作用域的顶部。 (JS中的范围映射到函数定义)。