質問編集履歴
9
補足
title
CHANGED
File without changes
|
body
CHANGED
@@ -50,7 +50,7 @@
|
|
50
50
|
console.log(args);
|
51
51
|
|
52
52
|
// 呼び出し元に返したいのはこちらの方
|
53
|
-
//ここでargsを`fn = (xxx) => () => {}`の(xxx)に渡すことは出来ないか?
|
53
|
+
//ここで呼び出し元から渡ってくるargsを`fn = (xxx) => () => {}`の(xxx)に渡すことは出来ないか?
|
54
54
|
return fn.bind(obj);
|
55
55
|
|
56
56
|
}
|
8
言葉足らずのところをなおしました
title
CHANGED
File without changes
|
body
CHANGED
@@ -58,11 +58,9 @@
|
|
58
58
|
})
|
59
59
|
|
60
60
|
|
61
|
-
// 最終的に返ってきているのが関数なのでこうなってしまう
|
61
|
+
// 最終的に返ってきているのが関数なのでこうなってしまうし、5も返ってくる関数には渡っていない
|
62
62
|
console.log(obj.func(5)()) // Function
|
63
63
|
|
64
|
-
//戻ってきているのが関数なので、こうすれば実行出来るけど上みたいにやりたい
|
65
|
-
//console.log(obj.func(5)()()) // hi
|
66
64
|
```
|
67
65
|
|
68
66
|
1つ目と2つ目のコードをミックスしたのがこの3番目のコードになるのですが、最終的に返す関数にこれだと呼び出し元から引数に渡した値が渡りません。こういう場合、どうすれば呼び出し元から引数に渡した値を、最終的に返したい関数に渡せるのでしょうか?
|
7
func
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,22 +7,22 @@
|
|
7
7
|
```
|
8
8
|
var obj = {};
|
9
9
|
|
10
|
-
Object.defineProperty(obj, '
|
10
|
+
Object.defineProperty(obj, 'func', {
|
11
11
|
get: function() {
|
12
12
|
const fn = (xxx) => () => { console.log('hi') };
|
13
13
|
return fn.bind(obj);
|
14
14
|
}
|
15
15
|
})
|
16
16
|
|
17
|
-
console.log(obj.
|
17
|
+
console.log(obj.func(5)())
|
18
18
|
```
|
19
|
-
この場合、`obj.
|
19
|
+
この場合、`obj.func(5)`としても、この5の値が最終的に返ってくる関数には渡せていません。
|
20
20
|
|
21
21
|
# 引数にはこうすると値が渡せることが分かった
|
22
22
|
```
|
23
23
|
var obj = {};
|
24
24
|
|
25
|
-
Object.defineProperty(obj, '
|
25
|
+
Object.defineProperty(obj, 'func', {
|
26
26
|
get: function() {
|
27
27
|
|
28
28
|
return function(...args) {
|
@@ -32,7 +32,7 @@
|
|
32
32
|
}
|
33
33
|
})
|
34
34
|
|
35
|
-
console.log(obj.
|
35
|
+
console.log(obj.func(5))
|
36
36
|
```
|
37
37
|
getterでメソッド呼び出しする時に引数の値を渡したい場合は、呼び出し元に返す関数の引数に実引数の値が渡ってくるので、それを使えることは分かりました。
|
38
38
|
|
@@ -41,7 +41,7 @@
|
|
41
41
|
```
|
42
42
|
var obj = {};
|
43
43
|
|
44
|
-
Object.defineProperty(obj, '
|
44
|
+
Object.defineProperty(obj, 'func', {
|
45
45
|
get: function() {
|
46
46
|
|
47
47
|
const fn = (xxx) => () => { console.log('hi') };
|
@@ -59,10 +59,10 @@
|
|
59
59
|
|
60
60
|
|
61
61
|
// 最終的に返ってきているのが関数なのでこうなってしまう
|
62
|
-
console.log(obj.
|
62
|
+
console.log(obj.func(5)()) // Function
|
63
63
|
|
64
64
|
//戻ってきているのが関数なので、こうすれば実行出来るけど上みたいにやりたい
|
65
|
-
//console.log(obj.
|
65
|
+
//console.log(obj.func(5)()()) // hi
|
66
66
|
```
|
67
67
|
|
68
68
|
1つ目と2つ目のコードをミックスしたのがこの3番目のコードになるのですが、最終的に返す関数にこれだと呼び出し元から引数に渡した値が渡りません。こういう場合、どうすれば呼び出し元から引数に渡した値を、最終的に返したい関数に渡せるのでしょうか?
|
6
()が多い理由
title
CHANGED
File without changes
|
body
CHANGED
@@ -67,6 +67,6 @@
|
|
67
67
|
|
68
68
|
1つ目と2つ目のコードをミックスしたのがこの3番目のコードになるのですが、最終的に返す関数にこれだと呼び出し元から引数に渡した値が渡りません。こういう場合、どうすれば呼び出し元から引数に渡した値を、最終的に返したい関数に渡せるのでしょうか?
|
69
69
|
|
70
|
-
実際のコードではObject.defineProperty内でのgetterではなく、ES6 Proxy内でのgetterであったり、generatorを使っているのですが、それらを用いないコードに置き換えても質問に影響しなそうだったので、以上のようなコードになっております。
|
70
|
+
実際のコードではObject.defineProperty内でのgetterではなく、ES6 Proxy内でのgetterであったり、generatorを使っているのですが、それらを用いないコードに置き換えても質問に影響しなそうだったので、以上のようなコードになっております。()がやたらと多い理由は単にgenerator式をラップしている関数を使っているためです。
|
71
71
|
|
72
72
|
よろしくお願いいたしますm(_ _)m
|
5
[5]
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
get: function() {
|
27
27
|
|
28
28
|
return function(...args) {
|
29
|
-
console.log(args); //5
|
29
|
+
console.log(args); //[5]
|
30
30
|
}
|
31
31
|
|
32
32
|
}
|
4
言葉を補いました
title
CHANGED
File without changes
|
body
CHANGED
@@ -67,6 +67,6 @@
|
|
67
67
|
|
68
68
|
1つ目と2つ目のコードをミックスしたのがこの3番目のコードになるのですが、最終的に返す関数にこれだと呼び出し元から引数に渡した値が渡りません。こういう場合、どうすれば呼び出し元から引数に渡した値を、最終的に返したい関数に渡せるのでしょうか?
|
69
69
|
|
70
|
-
実際のコードでは
|
70
|
+
実際のコードではObject.defineProperty内でのgetterではなく、ES6 Proxy内でのgetterであったり、generatorを使っているのですが、それらを用いないコードに置き換えても質問に影響しなそうだったので、以上のようなコードになっております。
|
71
71
|
|
72
72
|
よろしくお願いいたしますm(_ _)m
|
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
言葉で説明するのが難しいのですが、getterのメソッド呼び出しで引数に渡る値をgetterの中で返却する別の関数に渡したいです。
|
2
2
|
|
3
3
|
以下は実際のコードをだいぶ簡略したりしているのでだいぶ意味不明なコードになっていると思いますが、お付き合い頂けると嬉しいです。
|
4
|
-
実際のコードではproxyであったりgeneratorを使っているのですが、それらを用いないコードに置き換えても質問に影響しなそうだったので、以下のようになっております。
|
5
4
|
|
5
|
+
|
6
6
|
# こんなことをしたいけど引数に値をこれでは渡せない
|
7
7
|
```
|
8
8
|
var obj = {};
|
@@ -67,4 +67,6 @@
|
|
67
67
|
|
68
68
|
1つ目と2つ目のコードをミックスしたのがこの3番目のコードになるのですが、最終的に返す関数にこれだと呼び出し元から引数に渡した値が渡りません。こういう場合、どうすれば呼び出し元から引数に渡した値を、最終的に返したい関数に渡せるのでしょうか?
|
69
69
|
|
70
|
+
実際のコードではproxyでのgetterであったり、generatorを使っているのですが、それらを用いないコードに置き換えても質問に影響しなそうだったので、以上のようなコードになっております。
|
71
|
+
|
70
72
|
よろしくお願いいたしますm(_ _)m
|
2
補足しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
言葉で説明するのが難しいのですが、getterのメソッド呼び出しで引数に渡る値をgetterの中で返却する別の関数に渡したいです。
|
2
2
|
|
3
3
|
以下は実際のコードをだいぶ簡略したりしているのでだいぶ意味不明なコードになっていると思いますが、お付き合い頂けると嬉しいです。
|
4
|
+
実際のコードではproxyであったりgeneratorを使っているのですが、それらを用いないコードに置き換えても質問に影響しなそうだったので、以下のようになっております。
|
4
5
|
|
5
6
|
# こんなことをしたいけど引数に値をこれでは渡せない
|
6
7
|
```
|
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
言葉で説明するのが難しいのですが、getterのメソッド呼び出しで引数に渡る値をgetterの中で返却する別の関数に渡したいです。
|
2
2
|
|
3
|
-
以下は実際のコードをだいぶ簡略したりしているのでだいぶ意味不明なコードになっている
|
3
|
+
以下は実際のコードをだいぶ簡略したりしているのでだいぶ意味不明なコードになっていると思いますが、お付き合い頂けると嬉しいです。
|
4
4
|
|
5
5
|
# こんなことをしたいけど引数に値をこれでは渡せない
|
6
6
|
```
|