你怎么称呼一组共享共同背景的Javascript闭包?

前端之家收集整理的这篇文章主要介绍了你怎么称呼一组共享共同背景的Javascript闭包?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我一直在尝试学习闭包(在Javascript中),这种方式在C#和C之后用了太多年的时间来伤害我的大脑.我想我现在有一个基本的理解,但有一件事困扰我:我在这个Quest for Knowledge中访问了很多网站,我没有看到任何一个词(甚至是一个简单的双字短语),意思是“一套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”来命名可以访问其构造函数范围的函数(声明私有成员的函数).

我称之为“一组共享一个共同封闭范围的JavaScript函数”.

您发布的短语的“执行上下文”部分可能会在规范中描述的Execution Contexts,this值(通常也称为“函数上下文”或“对象上下文”)和函数范围之间产生混淆,真的是这里引用的内容.

猜你在找的JavaScript相关文章