質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

5回答

1698閲覧

JavaScriptで文字を数えたい

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2014/10/13 13:10

Javascriptで数えたい。
どうしたらいいのかわからない。

おしえてくださいな
おしえてくださいな

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

関数を定義したオブジェクトを返すことによって自作出来ます。
典型的なのはthisを返す方法です。

lang

1var A = function() {}; 2A.prototype.b = function() { 3 return this; 4}; 5A.prototype.c = function() { 6 return this; 7}; 8 9var a = new A(); 10a.b().c();

投稿2014/10/13 14:16

JohnSmith

総合スコア198

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

質問自体を何度も書き換えているんでしょうか…
回答がどんどん噛み合わなくなっているようですね…

故意なのかバグなのかわかりませんが…

投稿2014/10/16 11:43

TaMaMhyu

総合スコア1356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

katoy

2014/10/16 22:01

編集履歴を参照できる機能が欲しいですね。
guest

0

lang

1function 関数名(){ 2処理 3} 4 5関数名(); //←これで上の関数を実行、呼び出す 6 7//こんなことはしないようにw 8a(); 9function a(){ 10alert(); 11a(); 12}

投稿2014/10/16 11:13

mototo14

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

function で定義します。

lang

1function add(a, b) { 2 return a+b; 3} 4 5add(5, 3); // 8

投稿2014/10/15 17:13

yohshiy

総合スコア863

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

※10/16追記
いつの間にか質問が変わっていましたね。。
関数を定義するには下記の2通りの方法があります。

lang

1function hoge(arg) { 2 // 何か処理 3 console.log(arg); 4} 5 6var fuga = function (arg) { 7 // 何か処理 8 console.log(arg); 9}

両者の違いとしては、fugaの無名関数の代入による関数定義は、宣言前に呼び出すとエラーになります。

lang

1hoge(); // こっちはOK 2fuga(); // こっちはエラー 3 4function hoge() { 5 console.log("hoge"); 6} 7 8var fuga = function() { 9 console.log("fuga"); 10}

↑関数定義の方法ここまで

↓メソッドチェーンの実現方法ここから

既に回答されているように、基本的にはthisを返却するメソッドを作成することでメソッドチェーンを実現出来ます。

呼び出し時の()を書きたくないのであれば、以下のような方法をとることも出来ますね。

lang

1var obj = {}; 2 3obj.__defineGetter__('hoge', function() { 4 // なにか処理 5 return this; 6}); 7 8// 下記のように書ける 9obj.hoge;

この方法は、SocketIOというWebSocket用のライブラリでも使用されています。

lang

1/* 使用例 (SocketIO) */ 2Socket.prototype.__defineGetter__('json', function() { 3 this.flags.json = true; 4 return this; 5}); 6 7/* 下記のように書ける */ 8socket.emit('hoge', 'hoge'); // 通常の文字列をemit 9socket.json.emit('fuga', {'fuga' : 'fuga'}); // JSONデータをemit

投稿2014/10/14 00:37

k.tada

総合スコア1679

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問