javascript - 您如何称呼一组共享公共(public)上下文的 Javascript 闭包?

标签 javascript closures

我一直在尝试学习闭包(在 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/

相关文章:

javascript - setFilesToUpload 操作对我不起作用

javascript - 带有递归 JavaScript 的闭包

javascript - 在 javascript 对象中调用私有(private)方法

javascript - 如何在去抖动中传递参数

groovy - 为什么 Groovy 闭包不能访问注入(inject)的类成员?

javascript - 访问 IIFE 中的构造函数

javascript - 如何在每个输入达到最大长度时自动推进焦点

javascript - `undefined!` 在 typescript 中是什么意思?

javascript - JQuery SHow 请隐藏说明

javascript - JQuery 在 mouseenter 和 mouseleave 上无法正常工作