2017-09-25 8 views
3

この疑問を明確にしたいと思いますが、わからない解決策がある可能性がありますので、助けてください。一般的にコードを書きながら、私たちはそう渡す値が関数call()内部で処理され、dataにいくつかの値を返すことになるメンバー関数のように静的関数を呼び出す方法

var a = "HELLO"; 
var data = call(a); 

として

function call(a){ 
    /*some task*/ 
} 

関数を呼び出します。

toString()toLowerCase()などの組み込みのJavaScript関数を呼び出す場合は、関数内で値を渡すのではなく、a.toLowercase()という関数を呼び出します。

このタイプの関数呼び出しはどのように裏で働きますか?また、組み込み関数が呼び出される方法のようなカスタム関数を呼び出す方法はありますか?前もって感謝します。

+0

'のtoString()'と 'toLowerCaseメソッドは、()'オブジェクト自体のメソッドです。 – Gendarme

+0

[オブジェクトメソッドを参照](https://www.w3schools.com/js/js_object_methods.asp) –

+0

あなたが探しているのは、クラスとプロトタイプの継承です。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes – Strikegently

答えて

3

私は可能性が考えられる理由は、これらの関数は、a.toLowerCase()として呼び出すことができるの理由は、Stringオブジェクトのプロトタイプにバインドされる可能性があります。
例えば: String.prototype.toLowerCase()

あなたはStringオブジェクトのプロトタイプに関数を追加してみた場合、私は推測します。上記の方法でそれを呼び出すことができます。
:上記の例

String.prototype.distance = function (char) { 
 
    var index = this.indexOf(char); 
 

 
    if (index === -1) { 
 
     alert(char + " does not appear in " + this); 
 
    } else { 
 
     alert(char + " is " + (this.length - index) + " characters from the end of the string!"); 
 
    } 
 
}; 
 

 
"Hello".distance("H");

はリンクからである:javascript: add method to string class

2

あなたが実際に(彼らは関数のOOPと同等として想像することができる機能とは若干異なる方法、を参照しています、とにかく)。基本的にJavaScript(String、Numberなど)のプリミティブはオブジェクトとして使用できます。

var foo = "Bar"; // Bar 
var baz = foo.toLowerCase() // bar 

fooここには文字列です。 toLowerCaseメソッドを使用する場合、javascriptは、そのメソッドを使用できるようにするために実際にStringオブジェクトに文字列をラップします。

// behind the scenes 
var magicTemporaryFoo = new String(foo); 
var magicTemporaryFooMethodResult = magicTemporaryFoo.toLowerCase(); 

あなたがオブジェクトとそのメソッドを使用して起動したい場合は、私はあなたに非常に良い読み取りを示唆して、「You don't know Js - This & Object Prototypes

関連する問題