回答編集履歴
1
実装方針の異なるコードを追加してみる
answer
CHANGED
@@ -27,5 +27,36 @@
|
|
27
27
|
|
28
28
|
a(true);
|
29
29
|
a(false);
|
30
|
+
```
|
31
|
+
---
|
32
|
+
何がベストかは判らんけれど, `bind`を使わないならこうか?
|
30
33
|
|
34
|
+
```JavaScript
|
35
|
+
//エラーを握りつぶす関数
|
36
|
+
function test(f, ...arguments){
|
37
|
+
try{
|
38
|
+
return f(...arguments);
|
39
|
+
}catch(e){
|
40
|
+
return e;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
//エラーの発生有無を戻り値がErrorかどうかで判断
|
45
|
+
function a(v){
|
46
|
+
const val = test(b, v);
|
47
|
+
console.log(val);
|
48
|
+
if(val instanceof Error){return;}
|
49
|
+
}
|
50
|
+
|
51
|
+
//エラーを発生させるかもしれない関数
|
52
|
+
function b(v){
|
53
|
+
if(v === true){
|
54
|
+
throw new Error("error");
|
55
|
+
}else{
|
56
|
+
return "success";
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
a(true);
|
61
|
+
a(false);
|
31
62
|
```
|