【发布时间】:2016-03-03 01:31:09
【问题描述】:
如果我能理解以下问题,我可以接受 JavaScript 中函数是对象的概念。我已经四处搜索并查看了 javascript 引擎以尝试找到答案,但到目前为止我没有找到任何解释在我的脑海中......
可以理解,像下面这样的对象以哈希映射类型的构造布局。
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
但是,说这也是一个对象是我卡住的地方:
var name = function () {
alert ('name');
}
在内存方面,这个函数是如何存储的?
函数“哈希映射”内的语句是否按执行顺序排列?所以每个属性都被一个接一个地调用?
我可能遗漏了一些东西或想象了一些错误的东西。
谢谢。
附言
为了解决问题 2,
假设我的函数中有一个 if 语句...是否会存储在可通过其属性之一访问的属性中?
【问题讨论】:
-
为什么人们会否决发人深省的好问题?可能是因为他们无法在其他人之前提出 1 行答案。那是因为这不是“请修正我的错字”排序问题
-
与 C 不同,没有标准定义诸如 JavaScript 的内存布局之类的东西。不仅总体上没有单一的答案,在某些情况下,单个引擎可能也没有单一的答案,因为 JIT 可以根据使用方式不同地编译和评估代码。在一些 的情况下,仅用作函数的函数可能仅存储为函数,而没有分配任何特定的空间来存储属性。 (这是我在回避一个复杂的问题。)
-
问题2没看懂,hash map里面没有语句,没有执行。
-
啊...您是否试图在两种情况下都以相同的方式解释
{ ... }的内容?那可能会误导你。函数体的语法与对象字面量完全不同;他们只是碰巧使用了相同的外部分隔符。
标签: javascript function object