アプリ版:「スタンプのみでお礼する」機能のリリースについて

<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
var hoge = function(){
//▼
function testFunc(n){ }

testFunc.prototype.init = function(c){
alert(c);
}// end func

return{ testFunc:testFunc }
}();

varu = new hoge.testFunc();
u.init("あああ");
</script>
</body>
</html>
----------------------------------------------------

ここ数日いろいろ弄っているのですが、
いまいちピンと来ない感じです。
何か、参考になるようなスクリプトやポイントなどありましたら、
ご紹介いただけると幸いです。
よろしくお願いいたします。

A 回答 (3件)

prototypeの考え方



たとえば極端だけど

var Hoge = {
func_0: function() { alert("a");/*コードが数千行でもいいよ*/ },
func_1: function() { alert("b"); },
//~
func_1000: function() { alert("?"); }
//1000個の関数
};

var hoge_1 = new Hoge;
var hoge_2 = new Hoge;
//~
var hoge_1000 = new Hoge;

と、大量にオブジェクトを作ったとする。
オブジェクトを作るたびに、ものすごいメモリーが必要だと思わない?
Hogeの中に1000個の関数×1000個のオブジェクト。
ここで「メモリー = 風呂敷」とすると、かなり大きい風呂敷が沢山必要になる

でも.prototypeを使うと、Hogeの中に目的の関数がないと
.prototypeで後付けしたものを探すようになる。

これを利用して、Hogeの中に、関数なんて1個も置かない。

すると風呂敷は小さくて済む。
関数が必要になったとは、必要な部分だけ関数をコピーして、
あたかも風呂敷の中の関数のように振舞うように呼び出されている

と考えてみれば?
    • good
    • 0

ハードルは、たかいくらいがちょうどよいとおもってます。


やってることは、

var Hoge = function ( ) {
 ;
}

Hoge.prototype.init = function ( c ) {
 alert( c );
};

Hoge.testFunc = function ( ) {
 return new this;
};

var u = Hoge.testFunc();
u.init( "あああ" );

と、おんなじか?
じぶんでは、こっちのほうが、りかいしやすい。
というかこのていどです。すんません。
    • good
    • 0
この回答へのお礼

うーん。。
いろんな書き方があって迷ってしまいますね。
一見同じコードに見えてしまう。。
もう少し弄って慣れてみます!ありがとうございます!

お礼日時:2010/03/12 00:35

いきなりこんな複雑なコードを理解しようというのが間違いでは?



http://www.tohoho-web.com/js/object.htm
http://www.tohoho-web.com/js/function.htm
    • good
    • 0
この回答へのお礼

複雑なコードだったんですね。。
それすらも判断つかなかったです。
とほほさんで訓練します!
ありがとうございます!

お礼日時:2010/03/12 00:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!