【发布时间】:2017-06-27 09:18:21
【问题描述】:
比方说,
function f(){}
f();
当定义函数 f() 时,会在内存中创建一个函数对象(连同它的原型对象)
函数的执行会进一步创建任何新对象吗?如果是,那是什么?
编辑:
我正在尝试理解用 Javascript 实现的模块模式
function f(){
var name="";
out = {
getName: function(){return name;},
setName: function(newName){name = newName}
};
return out;};
var x= f();
var y = f();
调用 x.setName("foo");不影响 y.getName() 的值
如果不在任何对象中,x 和 y 的变量名实际上存储在哪里?
【问题讨论】:
-
构造函数模式的函数执行肯定会创建一个新对象。函数执行的非构造模式,即 f() 会创建任何新对象吗?
-
使用 chrome 的分析工具应该很容易检查
-
据我所知,在函数/例程旁边放置
()是在声明f打开它之后关闭流。
标签: javascript function object