我能';“我不明白”;简化JavaScript中的函数是具有词法范围的lambda;
我正在读道格拉斯·克罗克福德的书《JavaScript:好的部分》。我无法理解“简化JavaScript中的函数是具有词法范围的lambda”这句话。这句话想告诉我们什么?你怎么理解这个句子 多谢各位 以下是书中这句话的上下文: 我想包括所有的代码 用于JavaScript中解析 JavaScript。但我的章节只是 30岁或40岁中的一个,所以我感到压抑 在我能看到的页数上 消费另一个并发症是 我的大多数读者都没有 有JavaScript方面的经验,所以我也 必须介绍这种语言 以及它的特点 因此,我决定对语言进行子集划分。 这样,我就不必解析 整个语言,我就不必了 描述整个语言。我打电话 子集简化了JavaScript。 选择子集很容易:它 只包含了我想要的功能 需要编写一个解析器。这是怎么回事 我用优美的代码描述了它: 简化的JavaScript正是好的选择 材料,包括: 用作firortranst类对象 简化JavaScript中的函数是具有词法范围的lambda。 具有原型的动态对象 继承权 对象是无类的。我们可以添加一个 普通法中任何对象的新成员 分配对象可以继承 来自另一个对象的成员 对象文字和数组文字 这是一个非常方便的符号 创建新对象和数组。 JavaScript文本是最重要的 JSON数据的灵感 交换格式我能';“我不明白”;简化JavaScript中的函数是具有词法范围的lambda;,javascript,function,lambda,Javascript,Function,Lambda,我正在读道格拉斯·克罗克福德的书《JavaScript:好的部分》。我无法理解“简化JavaScript中的函数是具有词法范围的lambda”这句话。这句话想告诉我们什么?你怎么理解这个句子 多谢各位 以下是书中这句话的上下文: 我想包括所有的代码 用于JavaScript中解析 JavaScript。但我的章节只是 30岁或40岁中的一个,所以我感到压抑 在我能看到的页数上 消费另一个并发症是 我的大多数读者都没有 有JavaScript方面的经验,所以我也 必须介绍这种语言 以及它的特点 因
他试图解释JavaScript中函数声明的本质。通过将它们描述为“具有词汇范围的lambdas”,他回避了它们的使用方法。例如,您可以静态声明它们:
function myFunc(arg) {
// do something
}
可以将它们存储在变量中:
var myFunc = function(arg) {
// do something
};
可以将它们用作对象属性(方法):
或者,您可以在传递它们时声明它们(在使用jQuery时非常常见):
由于在何时/如何声明它们方面的灵活性,它们与lambda在许多其他语言(例如Python)中所扮演的角色相同。lambda函数是匿名函数的另一个术语。他说javascript支持匿名函数(您可以动态创建函数而不给它们命名,比如var myVar=function(){…})。词法作用域是指javascript如何处理作用域。见:
var myObject = {
myMethod: function (arg) {
// do something
}
};
$('.myClass').click(function () {
// do something when an element with class "myClass" is clicked.
});