下面这段
return {
....
}[String(angle).match(/[a-z]+$/)[0] || 'rad'](parseFloat(angle));
的写法是什么意思?return后面跟个数组自执行?
function radians(angle) {
if (typeof angle == 'number') return angle;
return {
rad: function(z) {
return z;
},
deg: function(z) {
return Math.PI / 180 * z;
}
}[String(angle).match(/[a-z]+$/)[0] || 'rad'](parseFloat(angle));
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
只是写的复杂了一点, 不要被细节迷惑了.
相当于:
写法还算奇怪,至少我见到这样的写法不多。目的就是,根据传进来的angle来判断是调用rad还是deg方法
上面的结果是
函数当然可以执行了
第一次看到这种写法
炫技能还可以,真正给别人看还是写清楚点好