JavaScriptの中でなぜstringは方法を持つことができますか?

2890 ワード

引用子:JavaScriptデータの種類は二つの種類に分けられています.基本タイプ(または元のタイプ)と引用タイプがあります.基本タイプの値は、スタックメモリに保存されている簡単なデータセグメントで、値によってアクセスされます.JSには5種類の基本タイプがあります.Unidefined、Null、Boolean、Number、Stringです.参照タイプの値は、スタックメモリに保存されているオブジェクトで、その値は参照でアクセスされます.引用タイプは主にObject、Aray、Funct、RegExp、Dateがあります.オブジェクトは属性と方法を持っているので、次のコードを見てもおかしくないです.
   var favs=['  ','  '];  favs.push('  ');  
   console.log(favs);//["  ", "  ", "  "]  
   console.log(favs.length);//3
Arayは引用タイプなので、自然と属性と方法を持つことができます.この当たり前の意味で夏には必ずアイスクリームを食べます.しかし、下記のコードを見て、よく考えてみてください.これは合法ですか?
    var realMessage="Said I love you but I lied"; 
    var  realMessage="Said I love you but I lied"; 
    var  myMessage=realMessage.substring(5,15); 
       console.log(myMessage); //"I love you"
別れの文字列をわがままに「substring」という方法を実行しました.そして楽しく編集版を見て寝ました.しかし、しかし、stringが基本的なタイプというわけではないですが、なぜそれは方法を持っていますか?王法がありますか?青天様!実は、これらは全部「基本包装タイプ」というものがあるからです.この基本的な包装のタイプはとてもまっすぐで、本当の「事了回服去、深蔵功と名」です.基本包装のタイプは最初に言及したObject、Arayなどの引用のタイプを除いて、JavaScriptは私達のために3種類の特殊な引用のタイプを提供しました.上のクリップ文字列の例を見ていくと、substring方法を使っても、realMessage自体の値は変わらないということに気づきました.この方法を呼び出して、新しい文字列を返しただけです.これが基本包装タイプの役割です.もともとあなたは方法がないですが、方法を使いたい時は、調整しても大丈夫です.対応する基本包装のタイプはこの方法があればいいです.例えば上のsubstringの方法では、stringという基本的なタイプはこの方法があり得ませんが、Stringというパッケージのタイプがあります.realMessage.substring(5,15)という行のコードを実行した時、多くのことが発生しました.まず、メモリからrealMessageの値を読み出す.このような読み取りモードにあると、バックグラウンドが働き始めます.JSハイレンジは、バックグラウンドで行われるこれらの動作を説明するものである.1.Stringタイプを作成する例.2.インスタンス上で指定された方法を呼び出す.3.この例の上の例を破棄するには、このようなコードで説明することができます.
   var _realMessage=new String("Said I love you but I lied"); 
   var myMessage=_realMessage.substring(5,15);
   realMessgae=null; //        
したがって、基本的なタイプのstringではなく、バックグラウンドはそれに対応する基本的な包装タイプのStringを作成していることが分かりました.これは基本的なタイプの値に基づいて具体化された例です.この例を指定方法を呼び出して、一番後に自分を廃棄して、感覚的に木があります.最後の段階に注意して、基本包装のタイプは「廃棄されます」という特性があります.これは基本タイプの値にカスタム属性と方法を追加できないことを決めました.
      var me="sunjing"; me.age=18; 
      console.log(me.age);//undefined
くださいましたこの文字列には、age属性が付加されています.18歳の素敵な値に設定されていますが、再び訪問すると、この属性は姿を消してしまいました.これは、2行目のコード属性付与値を実行すると、バックグラウンドが基本パッケージタイプのインスタンスを作成しました.このage属性は実際にインスタンスに掛けられましたが、その後、このインスタンスは破棄されました.3行目に実行されます.基本包装タイプは文字列が読み取りモードにある以外に、バックグラウンドが基本パッケージタイプのインスタンスを作成してくれます.私達自身も表示して作成することができます.
      var str=new String("hello");
      var str2=str.toUpperCase(); 
      console.log(str2);//"HELLO:
このようにバックグラウンドが作成してくれた時の変数に保存されているものとは違います.
      var str1=new String("hello"); 
      var str2="hello"; typeof str1 //"object" typeof str2 //"string"
まとめは基本包装タイプのおかげで、string、bollan、numberの3つの基本タイプがより便利になりました.この3つの基本タイプの値を読むたびに、バックグラウンドは対応するパッケージタイプのインスタンスを作成します.この例は指定方法を呼び出して、呼び出しが完了したら、取り消されます.この短いライフサイクルは基本タイプにカスタム属性を追加できないことを決めました.と方法.