当前位置:  开发笔记 > 编程语言 > 正文

如何将此功能从as3转换为javascript

如何解决《如何将此功能从as3转换为javascript》经验,为你挑选了1个好方法。

我对javascript有点新意,所以我不知道如何将这个在actionscript3中编写的函数重写为js:

function map(v:Number, a:Number, b:Number, x:Number = 0, y:Number = 1):Number {
    return (v == a) ? x : (v - a) * (y - x) / (b - a) + x;
}

它在javascript中会是什么样子?究竟是什么原因导致现在无法正常工作?



1> shanethehat..:

如果您删除所有类型数据,它应该在JS中工作,但您需要检查这些默认参数值,因为不支持默认参数.

function map(v, a, b, x, y) {
    if(x == undefined || isNaN(x)) x = 0;
    if(y == undefined || isNaN(y)) y = 1;
    return (v == a) ? x : (v - a) * (y - x) / (b - a) + x;
}

要专门回答问题的最后部分,有两个问题会阻止您的代码作为JavaScript运行:

    JavaScript是一种松散类型的语言,因此不允许在函数参数上声明类型.为了避免出现意外错误,您可以测试每个参数并抛出错误,而不是您需要的类型.

    JavaScript不允许提供默认参数,但允许省略函数参数.这与ActionScript不同,ActionScript不提供没有默认值的参数会引发错误.处理此问题的方法是测试未定义的参数,并在需要时设置值.

我在上面对NaN的额外测试是一个额外的预防层,并不是必需的,但它同样可以用于所有参数,使代码更健壮.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有