回答編集履歴

2

markdown修正

2016/11/11 17:52

投稿

think49
think49

スコア18164

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- 何となく全体像を把握するのが目的であれば `Funcrion.prototype.bind`this束縛、引数束縛する関数」と認識するのが無難だと思います。
35
+ 何となく全体像を把握するのが目的であれば「**Funcrion.prototype.bind はthis束縛、引数束縛する関数**」と認識するのが無難だと思います。
36
36
 
37
37
  クロージャは忘れてください。
38
38
 

1

Funcrion\.prototype\.bind は Polyfill を作れない

2016/11/11 17:52

投稿

think49
think49

スコア18164

test CHANGED
@@ -1,3 +1,7 @@
1
+ ### Funcrion.prototype.bind はクロージャではない
2
+
3
+
4
+
1
5
  `Funcrion.prototype.bind` を使用しても `greet` はエンクロージャにはならないと思います。
2
6
 
3
7
  クロージャとは関数内包の事です。
@@ -8,4 +12,30 @@
8
12
 
9
13
 
10
14
 
15
+ ### Funcrion.prototype.bind は Polyfill を作れない
16
+
17
+
18
+
19
+ `Funcrion.prototype.bind` は `this` 値の扱いが難しいので Polyfill コードを書くことが出来ません。
20
+
21
+ ですので、疑似コードでそれを語るのはナンセンスだと思います。
22
+
23
+
24
+
25
+ - [Function.prototype.bindは何がいいのか - 枕を欹てて聴く](http://constellation.hatenablog.com/entry/20110113/1294846327)
26
+
27
+
28
+
29
+ `new` 演算子の挙動を度外視するなら上記ブログで Constellation さんが書いたように Polyfill を書くことが可能です。
30
+
31
+ が、ネイティブな `Funcrion.prototype.bind` と同一ではない事に変わりはありませんので、内部仕様を理解した上で「クロージャとの共通点」「クロージャとの相違点」を見出す必要があります。
32
+
33
+
34
+
35
+ 何となく全体像を把握するのが目的であれば `Funcrion.prototype.bind` は「this束縛、引数束縛する関数」と認識するのが無難だと思います。
36
+
37
+ クロージャは忘れてください。
38
+
39
+
40
+
11
41
  Re: aaaaaaaa さん