可利用比例關係,我就不幫算了
請問,我最近在練習callback function,
如果將這個例子寫成callback function
function ans(leftHeight,rightHeight,theWidth,theLocation,fn) {
if(!!leftHeight && !!rightHeight && leftHeight != rightHeight &&!!theWidth &&!!theLocation){
let theHeight = Math.abs(leftHeight-rightHeight)
let slope = theWidth/theHeight
function fn(slope,theLocation){
return (theLocation/slope);
}
return fn(slope,theLocation)
}else{
return '此題無解';
}
}
let myAns = ans(3700,1900,11500,3500)
console.log(myAns);
可以怎麼優化這個function呢?感謝
(一直想不到要怎麼將function的變數,壓在三個以內)
ans(左邊高度,右邊高度,總長度,由左開始算的柱子位置)
用閉包(Closure)的作法呢?
function ans(leftHeight, rightHeight, theWidth) {
if(
typeof leftHeight === 'number' &&
typeof rightHeight === 'number' &&
typeof theWidth === 'number' &&
theWidth !== 0
) {
return function(theLocation) {
if(typeof theLocation!=='number') {
throw 'theLocation 必須為 number';
}
return leftHeight + (rightHeight - leftHeight) / theWidth * theLocation;
}
}
throw 'ans(number, number, number!=0)';
}
let myAns = ans(3700, 1900, 11500);
console.log('第二柱:' + myAns(3500));
console.log('第三柱:' + myAns(7000));
淺水員
原來如此,謝謝!
想問一下,平常專案會很常用到callback function嗎?
因為我用vue寫專案,沒有用過....(可能是我自己的問題)
我不知道怎麼樣叫做常用
但 callback 跟 Promise 都建議要了解
在異步處理的場合很常出現
問題:
答:
參考:
斜率計算器
https://miniwebtool.com/zh-tw/slope-calculator/?x1=2500&y1=7666.667&x2=1900&y2=11500
看是距離是平均定數,還是高度為平均定數