<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>
----------------------------------------------------
ここ数日いろいろ弄っているのですが、
いまいちピンと来ない感じです。
何か、参考になるようなスクリプトやポイントなどありましたら、
ご紹介いただけると幸いです。
よろしくお願いいたします。
No.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個も置かない。
すると風呂敷は小さくて済む。
関数が必要になったとは、必要な部分だけ関数をコピーして、
あたかも風呂敷の中の関数のように振舞うように呼び出されている
と考えてみれば?
No.2
- 回答日時:
ハードルは、たかいくらいがちょうどよいとおもってます。
やってることは、
var Hoge = function ( ) {
;
}
Hoge.prototype.init = function ( c ) {
alert( c );
};
Hoge.testFunc = function ( ) {
return new this;
};
var u = Hoge.testFunc();
u.init( "あああ" );
と、おんなじか?
じぶんでは、こっちのほうが、りかいしやすい。
というかこのていどです。すんません。
うーん。。
いろんな書き方があって迷ってしまいますね。
一見同じコードに見えてしまう。。
もう少し弄って慣れてみます!ありがとうございます!
No.1
- 回答日時:
いきなりこんな複雑なコードを理解しようというのが間違いでは?
http://www.tohoho-web.com/js/object.htm
http://www.tohoho-web.com/js/function.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
idを使わずにonclickで自身の要...
-
functionから別のfunctionを実...
-
【JavaScript】二重送信防止
-
jQuery 同じ処理を関数にまとめ...
-
ajax反映後のjqueryが動かない
-
クリックすると上に開くアコー...
-
XMLHttpRequestでキャッシュを...
-
オンマウスでテキストを表示す...
-
Javascriptの丸括弧の意味
-
C#OpenCv V4にのエラーに関する...
-
google apps scriptの終了のさせ方
-
二次元配列を使って順位をだす...
-
同じIDで定義した要素の配列を...
-
GASでundefinedエラーが出ます
-
<a>タグのテキストを取得
-
Boolean型配列中のTrueの有無を...
-
【正規表現】【javascript】CR...
-
innerHTML実行後のイベント
-
Linux バイナリ実行できない "...
-
ActiveXobjectが作成できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
functionから別のfunctionを実...
-
idを使わずにonclickで自身の要...
-
関数でy=g(x)のgとは何の略です...
-
jslintのエラーについて質問
-
jQueryの :not() .not() が有効...
-
クリックすると上に開くアコー...
-
jQueryのプラグイン「Skitter」...
-
関数名をテキストから読み込む...
-
小数点以下を5刻みで表示
-
XMLHttpRequestでキャッシュを...
-
jQueryでzipを解凍読み込みする...
-
Matlabで自作関数をオーバーロード
-
javascript(jQuery)でセル内...
-
要素名がスペースを含む場合のj...
-
ページ内に複数表がある場合のT...
-
処理前の「お待ちください」
-
JS 頭文字が大文字について
-
HTML5でファイルドラッグ&ドロ...
-
Javascriptリアルタイムエラー...
-
getElementByIdを使用したグロ...
おすすめ情報