【发布时间】:2016-01-20 22:14:36
【问题描述】:
我以前写了很多 Javascript,现在我只是跳回它,但似乎我失去了理智。我正在尝试使用函数创建一个对象,并且我正在按照我的在线搜索建议我应该做的方式来做这件事。我创建了这个例子来展示我尝试过的许多方法。
<script>
function a(){
function b(){};
this.c = function(){};
this.d = 0;
var e = function(){};
var f = 0;
}
a.g = function(){};
a.prototype.h = function(){};
var a2 = function(){
function b(){};
this.c = function(){};
this.d = 0;
var e = function(){};
var f = 0;
}
a2.g = function(){};
a2.prototype.h = function(){};
</script>
据我的记忆,我应该可以调用 a.b()、a.c() 和 a.d,同样可以调用 a2。
但是,当我尝试给他们打电话时,它不起作用。当我在控制台中键入变量名称时,它甚至没有将它们显示为一个选项。但是我可以调用 a.g()。我不能调用 a.h(),但我可以调用 a.prototype.h()。
我在 chrome 中尝试过这个,在 Firefox 和 Safari 中也尝试了一些东西。
据我从在线教程中得知,这并不是我应该期待的交互方式。
【问题讨论】:
标签: javascript object closures