【发布时间】:2018-10-20 06:31:51
【问题描述】:
我有一个关于公共变量和闭包的问题。 在下面的代码中,母亲内部的'temp'变量是怎么来的 对象可以像母对象一样使用吗?
例如,在下面的代码中,如果你输入
console.log(pizzaA.getToppings());
你可以得到“3”
有点混乱,因为如果您返回“temp”,它仍然是 母亲对象。所以这意味着,我想我必须输入如下 “console.log(pizzaA.temp.getToppings());”
不是吗?
var Pizza = function () {
var crust = 'thin';
var toppings = 3;
var getToppings = function () { return toppings; };
var temp = {};
temp.getToppings = getToppings;
return temp;
};
var pizzaA = new Pizza();
console.log(pizzaA.getToppings());
【问题讨论】:
-
Pizza不是构造函数,因为您从它返回一个对象。 JavaScript 中没有“公共变量”之类的东西。temp是一个变量,不是任何东西的属性。 -
非Java反模式的写法是jsfiddle.net/L2g2hzkt。
标签: javascript scope closures