2017-03-14 6 views
3

チュートリアルに続いてjavascriptnodejsを学習し始めました。彼らは使用されるコードの一つは次のとおりです。関数でドット演算子を使用する

var express=require('express'); 
var app=express(); 
app.listen(3000); 

今私が行うとき:

console.log(typeof app); 
console.log(typeof app.listen); 

私が手:出力として

function 
function 

を。今度はtypeof appfunctionなら、どうすれば.オペレータを使って他の機能(listen)にアクセスできますか? expressモジュールを読み込もうとしましたが、あまり理解できませんでした。

誰も、functionという名前の.演算子を使用して、その内部の他の関数にアクセスするという簡単な例はありますか?

私はこの試みた:

var t=function(){ 
    t.bar=function(){ 
     console.log('bar'); 
     } 
    }; 

t.bar(); 

をしかし、動作しません。

+0

't()'を呼び出すまで、あなたの例では 't.bar'を定義していません... – jonrsharpe

+3

関数はファーストクラスの市民です:' function a(){} a.some = function( ){console.log( 'Some'); } ' – Tushar

+0

@ Tushar私たちは' objects'を使うのと同じように使用できますか? – shiva

答えて

2

関数はオブジェクトであり、他のオブジェクトと同じようにプロパティを持つことができます。

var t = function() { 
    console.log('foo'); 
}; 

t.bar = function() { 
    console.log('bar'); 
}; 

t.bar(); 

t.favColor = 'red'; 
t.shoeSize = 12; 
+0

スニペットを使用すると、回答の信頼性が向上します。 –

0

あなたの質問は、言語の基本についてです。

解決策はたくさんあります。

これは達成したいことによって異なります。

const t =() => {}; 
t.bar =() => { 
    console.log('bar'); 
}; 

t.bar(); 

か::

const t = { 
    bar:() => { 
    console.log('bar'); 
    } 
}; 

t.bar(); 

か:

class t { 
    static bar() { 
    console.log('bar'); 
    } 
} 

t.bar(); 

か:

class T { 
    static bar() { 
    console.log('bar'); 
    } 
} 

const t = new T(); 
t.bar(); 

は、ここではいくつかの例であり、とあなたの例に修正する(同じ上記の例のように):JavaScriptで

var t = function {}; 
t.bar = function() { 
    console.log('bar'); 
}; 

t.bar(); 
1

function Sはオブジェクトです。これは、あなたがfunction

var myFunction = function(/*Some parameters*/) {/*Do something*/}; 

typeof myObject 

"object"

typeof myFunction 

"function"になりますになりますどのように定義するかである

var myObject = {/*Some members*/}; 

:これは、オブジェクトを定義する方法であります

これらの違いはmyFunctionが呼び出せますが、myObjectは呼び出すことができません。たとえば、これは

({})() 

となります。しかし、そうでなければ、彼らは非常に似ている、彼らは同じ方法でメンバーを持つことができます。

myFunction.myInnerFunction = function(/*Some other parameters*/) {/*Do something else*/}; 

myFunctionmyInnerFunction部材functionであることを起こる値を割り当てます。そこからmyFunction.myInnerFunctionに電話することができます。しかし、functionの詳細については、thisというキーワードで調査を開始する必要があります。

関連する問題