2016-10-31 5 views
0

私がしたいことは信じられないほどシンプルなはずですが、私は基本的な概念を理解していないと思っています。ドットプレフィックスによるメソッドへの値の受け渡し

私は、値を引数として渡すのではなく、 "連鎖"することによって、関数に値を渡したいと思っています。代わりの

var formattedDate = myDate.convertTime() 

は、私がこれを行うことができるようにしたい私は、オブジェクト内のコール機能を使用する方法の多くの例に遭遇してきた私の検索で

var formattedDate = convertTime(myDate); 

を、しかし、彼らは常に新しいオブジェクトを宣言し、そのオブジェクトの中で、年齢、名前、または場所などの定義済みの変数を単に更新する関数を呼び出すことから始めます。これは自分の状況に適用したときに探しているようには見えません。私は本当に正しい方向にいくつかの指導を感謝します。 1 https://jsfiddle.net/mna7jxrs/

更新:たとえば、私たちは(convertTimeに日付文字列を渡している

+0

'myDate'、標準JSとは何ですか'Date'オブジェクト? – nnnnnn

+0

はい、標準の 'Date'オブジェクトです。 – Err

+3

[javascript prototypal inheritance](http://stackoverflow.com/questions/572897/how-does-javascript-prototype-work) –

答えて

1

あなたは

String.prototype.myFunction = function() { 
    return this.toUpperCase(); 
} 

var text = "sample text"; 

console.log(text.myFunction()); // calling user defined function 

フィドルを次のように何かを探していますそれをUTC文字列に変換しています

Date.prototype.convertTime = function() { 
    return this.toUTCString(); 
} 

var date = new Date(); 

console.log(date); // Mon Oct 31 2016 11:56:57 GMT+0530 (India Standard Time) 

console.log(date.convertTime()); // Mon, 31 Oct 2016 06:26:57 GMT 

フィドル:https://jsfiddle.net/doc7gL2g/

+0

なぜあなたは 'Date.prototype'ではなく' String.prototype'で例を挙げますか? – nnnnnn

1

あなたが何をしたいかは、あなたのオブジェクトMyDateに該当するメソッドを追加することです。

myDateがvar myDate = new Date();によって作成された日付であると仮定します。

あなただけの現在のオブジェクトに追加したい場合は、この方法で行うことができます。それはより一般的にするために今すぐ

var myDate=new Date(); 

myDate.convertTime = function() { 
    console.log("I’m working on", this); 
}; 

myDate.convertTime(); // -> see console 

を、あなたは私たちがmonkey patching呼んで何かをしたい:

Date.prototype.convertTime = function() { 
    console.log("I’m working on", this); 
}; 

var myDate = new Date(); 
myDate.convertTime(); // -> see console 

var myOtherDate = new Date(); 
myOtherDate.convertTime(); // -> see console 

モンキーパッチのための作業のペン:http://codepen.io/BuonOmo/pen/RGzYmz?editors=0012

関連する問題