我正在读一本书并遇到“关闭javascript限制函数中变量的范围”..这是否意味着,如果任何另一个从带有闭包的函数对象继承的对象,则无法访问其属性
答案 0 :(得分:1)
闭包是代码可以访问外部执行上下文中的变量的地方。在有用的闭包中,变量在包含它的函数完成执行后继续存在,例如,
var x = (function() {
var outerA = 'A';
return function() {
return outerA;
}
}());
内部函数可以访问outerA
,即outerA
在其范围链上。内部函数已分配给x
,因此之后仍可访问outerA
:
alert(x()); // A
所以闭包并不限制范围,它们是它的结果。
javascript的这个功能可以用来模拟基于类的语言称为私有成员的内容。它也可以用于继承,其中多个对象可以访问同一组值(对象,函数,基元等)。
答案 1 :(得分:0)
Javascript中没有继承。我们只是通过various means模拟继承。
JS中的闭包仅仅是指函数在其范围内保留变量值的事实。所以是的,只要您谈论同一个对象并且该值将被保留。范围。