teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2016/02/10 01:18

投稿

miyabi-sun
miyabi-sun

スコア21461

answer CHANGED
@@ -34,7 +34,7 @@
34
34
  クラスやインスタンス的なものもCoffeeなら下記一択です。
35
35
  一応JS的に懇切丁寧に書く事も可能です。
36
36
 
37
- ---
37
+ ```
38
38
  # CoffeeScript
39
39
  class class1
40
40
  constructor: (@name)->
@@ -51,7 +51,7 @@
51
51
  return class1;
52
52
  })();
53
53
  instance1 = new class1();
54
- ---
54
+ ```
55
55
 
56
56
  # 回答
57
57
 

1

追記

2016/02/10 01:18

投稿

miyabi-sun
miyabi-sun

スコア21461

answer CHANGED
@@ -13,8 +13,46 @@
13
13
  最速のスクリプト言語に上り詰める程最適化の進んだ言語ですので、
14
14
  明らかな浪費や無駄なループを回さない限りメモリや処理速度で困る事はないかと思います。
15
15
 
16
+ ## 追記
17
+
18
+ 関数定義は同一スコープ内では下で宣言して上で読み込める等の仕様で、
19
+ Badパーツにされてたかと思います。
20
+ ですので、CoffeeScriptではよほどなケース(Classのコンストラクタ等)以外では定義することが出来ず、下記一択となります。
21
+
22
+ ```
23
+ # CoffeeScript
24
+ a = ->
25
+ # 処理
26
+
27
+ # JavaScript
28
+ var a;
29
+ a = function() {
30
+ // 処理
31
+ };
32
+ ```
33
+
34
+ クラスやインスタンス的なものもCoffeeなら下記一択です。
35
+ 一応JS的に懇切丁寧に書く事も可能です。
36
+
16
37
  ---
38
+ # CoffeeScript
39
+ class class1
40
+ constructor: (@name)->
41
+ amount: null
42
+ instance1 = new class1()
17
43
 
44
+ # JavaScript
45
+ var class1, instance1;
46
+ class1 = (function() {
47
+ function class1(name) {
48
+ this.name = name;
49
+ }
50
+ class1.prototype.amount = null;
51
+ return class1;
52
+ })();
53
+ instance1 = new class1();
54
+ ---
55
+
18
56
  # 回答
19
57
 
20
58
  > インスタンス化によるメモリ浪費を防ぐため、不要なものはグローバル関数にしています。
@@ -25,4 +63,4 @@
25
63
  JavaScriptにおけるメモリの浪費を避けるコーディング
26
64
  [http://utage.headwaters.co.jp/blog/?p=1116](http://utage.headwaters.co.jp/blog/?p=1116)
27
65
 
28
- 「JavaScript ガベージコレクション」等で検索すると色々記事が出てくるので、シビアに追求するなら読んで見ると良いかと思います。
66
+ 「JavaScript ガベージコレクション」等で検索すると色々記事が出てくるので、シビアに追求するなら読んで見ると良いかと思います。