python Lambda到Javascript的转换
Conversion of python Lambda to Javascript
我正在将以下代码从Python转换为JS。
lat *= (math.pi / 180.0)
lon *= (math.pi / 180.0)
n = lambda x: wgs84_a / math.sqrt(1 - wgs84_e2*(math.sin(x)**2))
x = (n(lat) + alt)*math.cos(lat)*math.cos(lon)
y = (n(lat) + alt)*math.cos(lat)*math.sin(lon)
z = (n(lat) * (1-wgs84_e2) +alt)*math.sin(lat)
这大部分都没有问题,但我不知道如何将n=行与lambda函数转换成JS
JavaScript函数是可以动态创建的一等对象,所以lambdas只是该语言的一个特性。
大致翻译如下:
var n = function(x) {
return wgs84_a / Math.sqrt(1 - wgs84_e2*Math.pow(Math.sin(x), 2));
};
就像Python的lambda
一样,该表达式将创建函数并将其赋值给n
,但不调用它。稍后的代码将通过n
调用它。它也是一个"闭包",因为当它被调用时,它将使用你在它内部引用的变量(它对变量有一个持久的引用,并在调用时使用它们的值,而不是在创建时使用)。
特点:
使用
var
声明n
用
function
开始函数表达式该函数的参数在
function
之后的()
中给定名称。使用
return
关键字从函数返回一个值使用JavaScript的各种
Math
函数,包括Math.pow
而不是**
(JavaScript没有操作符)。
function n(x) {
return wgs84_a / Math.sqrt(1 - wgs84_e2*Math.pow(Math.sin(x), 2));
}
当执行进入包含该函数的作用域时,创建该函数;它发生在执行该范围内的任何分步代码之前。(人们有时称之为"提升",因为不管它出现在哪里,它都像是将声明移动——"提升"——到作用域的顶部。)当被称为时,它仍然使用它关闭的变量,而不是在它被创建时;这只是创建函数的另一种方式。
var n = function (x) { return wgs84_a / Math.sqrt(1 - wgs84_e2 * Math.pow(Math.sin(x), 2)) }
相关文章:
- 使用键/代码转换JavaScript数组
- NS_ERROR_XPC_BAD_CONVERT_JS:无法转换JavaScript参数arg 0[nsIDOMWind
- 转换Javascript中的DayOfYear值以用于Flot
- 转换Javascript日期格式
- 字符串大小写转换 javascript
- 一个很好的文本到语音转换JavaScript库
- JQuery 函数突然停止工作,转换 Javascript 参数时出错
- 转换 JavaScript 代码
- 需要转换Javascript数组的格式
- 转换javascript中的日期格式
- 循环以转换JavaScript对象
- jQuery Post中的错误:无法转换JavaScript参数
- UglifyJS转换javascript代码
- Html到Haml的转换javascript
- 正在转换Javascript日期
- 转换Javascript关联对象并用PHP输出
- 转换JavaScript'这'到jQuery'$(这个)'
- 转换JavaScript数组
- 无法转换JavaScript参数arg 0 [nsIDOMWindow.getComputedStyle]
- jQuery美元.Firefox中的ajax错误:"无法转换JavaScript参数"