我一直在尝试学习闭包(在 Javascript 中),在使用 C# 和 C++ 多年后,这对我的大脑造成了伤害。我想我现在已经有了一个基本的了解,但是有一件事困扰着我:我在这个求知中访问了很多网站,但我没有看到任何一个词(甚至是一个简单的两个词短语)表示“一组”共享公共(public)执行上下文的 Javascript 闭包”。例如:
function CreateThingy (name, initialValue) { var myName = name; var myValue = initialValue; var retObj = new Object; retObj.getName = function() { return myName; } retObj.getValue = function() { return myValue; } retObj.setValue = function(newValue) { myValue = newValue; } return retObj; };
据我所知,这似乎是实现数据隐藏的一种常见方式。 CreateThingy 返回的值当然是一个对象,但是您如何称呼作为该对象属性的函数集?每个都是一个闭包,但我想要一个可以用来描述(和思考)所有它们作为一个概念实体的名称,而且我宁愿使用一个普遍接受的名称,也不愿自己编造一个名称。
谢谢!
-- 埃德
最佳答案
Crockford 推广了术语“privileged method”来命名可以访问其构造函数范围(声明私有(private)成员的地方)的函数。
我将它们称为“一组共享公共(public)封闭范围的 JavaScript 函数”。
您发布的短语的“执行上下文” 部分可能会在 Execution Contexts 之间造成混淆在规范中描述,this
值,通常也称为“函数上下文” 或“对象上下文”,以及函数作用域,它实际上是此处引用的内容。
关于javascript - 您如何称呼一组共享公共(public)上下文的 Javascript 闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029934/