Pembolehubah dan fungsi peribadi Pembolehubah dan fungsi yang ditakrifkan di dalam fungsi tidak boleh diakses oleh dunia luar jika tiada antara muka disediakan kepada dunia luar, iaitu pembolehubah dan fungsi adalah peribadi kepada fungsi tersebut. Salin kod Kod adalah seperti berikut: <br> Ujian Fungsi(){<br> var color = "biru";//Pembolehubah peribadi<br> var fn = function() //Fungsi peribadi<br> { <p> }<br> }<br> </skrip><br> </p> </div> <p>Dengan cara ini, pembolehubah warna dan fn tidak boleh diakses di luar objek fungsi Ujian, dan ia menjadi peribadi: </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="9320" class="copybut" id="copybut9320" onclick="doCopy('code9320')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code9320"> <br> var obj = Ujian baharu();<br> alert(obj.color);//pop up undefined<br> alert(obj.fn);//Sama seperti di atas<br> </div> <p><strong>Pembolehubah statik dan fungsi</strong></p> <p>Apabila fungsi ditakrifkan dan atribut dan fungsi yang ditambahkan oleh titik "." masih boleh diakses melalui objek itu sendiri, tetapi kejadiannya tidak boleh diakses, pembolehubah dan fungsi tersebut masing-masing dipanggil pembolehubah dan fungsi statik. </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="87294" class="copybut" id="copybut87294" onclick="doCopy('code87294')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code87294"> <br> <script type="text/javascript"><br> Fungsi Obj(){ <p> }<br> Obj.num = 72;//Pembolehubah statik<br> Obj.fn = function() //Fungsi statik<br> {</p> <p> } </p> <p> makluman(Obj.num);//72<br> makluman(jenis Obj.fn)//fungsi</p> <p> var t = new Obj();<br> alert(t.name);//undefined<br> makluman(jenis t.fn);//undefined<br> </skrip><br> </p> </div> <p><strong>Pembolehubah dan fungsi instance</strong></p> <p>Dalam pengaturcaraan berorientasikan objek, sebagai tambahan kepada beberapa fungsi perpustakaan, kami masih berharap untuk menentukan beberapa sifat dan kaedah semasa mentakrifkan objek, yang boleh diakses selepas instantiasi JavaScript juga boleh melakukan ini </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="26815" class="copybut" id="copybut26815" onclick="doCopy('code26815')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code26815"> <br> <script type="text/javascript"><br> Fungsi Obj(){<br> This.a=[]; //Pembolehubah instance<br> This.fn=function(){ //Kaedah contoh <p> }<br> }</p> <p> console.log(jenis Obj.a); //undefined<br> console.log(typeof Obj.fn); //undefined</p> <p> var o=Obj baharu();<br> console.log(typeof o.a); //objek<br> console.log(jenis o.fn); //fungsi<br> </skrip><br> </p> </div> <p>Tambah kaedah dan sifat baharu contohnya pembolehubah dan kaedah</p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="8252" class="copybut" id="copybut8252" onclick="doCopy('code8252')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code8252"> <br> <script type="text/javascript"><br> fungsi Obj(){<br> This.a=[]; //Pembolehubah instance<br> This.fn=function(){ //Kaedah contoh <p> }<br> }</p> <p> var o1=Obj baharu();<br> o1.a.push(1);<br> o1.fn={};<br> console.log(o1.a); //[1]<br> console.log(jenis o1.fn); //objek</p> <p> var o2=Obj baharu();<br> console.log(o2.a); //[]<br> console.log(jenis o2.fn); //fungsi<br> </skrip><br> </p> </div> <p>a dan fn diubah suai dalam o1, tetapi tidak diubah dalam o2 Memandangkan tatasusunan dan fungsi adalah kedua-dua objek dan jenis rujukan, ini bermakna walaupun sifat dan kaedah dalam o1 mempunyai nama yang sama seperti dalam o2, ia mempunyai nama yang sama Ia bukan rujukan, tetapi salinan sifat dan kaedah yang ditakrifkan oleh objek Obj. </p> <p>Ini bukan masalah untuk atribut, tetapi ia adalah masalah besar untuk kaedah, kerana kaedah melakukan fungsi yang sama, tetapi ia disalin dua kali Jika objek fungsi mempunyai kaedah beribu-ribu, maka setiap contoh ia mesti mengekalkan salinan beribu-ribu kaedah, yang jelas tidak saintifik Apa yang boleh kita lakukan? </p> <p><strong>Konsep asas</strong></p> <p>Setiap fungsi yang kami cipta mempunyai atribut prototaip, iaitu penunjuk kepada objek Tujuan objek ini adalah untuk mengandungi sifat dan kaedah yang boleh dikongsi oleh semua kejadian jenis tertentu. Kemudian, prototaip ialah objek prototaip contoh objek yang dibuat dengan memanggil pembina. </p> <p>Kelebihan menggunakan prototaip ialah tika objek boleh berkongsi sifat dan kaedah yang terkandung di dalamnya. Iaitu, daripada menambah maklumat objek yang menentukan dalam pembina, anda boleh menambah maklumat ini terus ke prototaip. Masalah utama dengan menggunakan pembina ialah setiap kaedah mesti dibuat dalam setiap contoh. </p> <p>Dalam JavaScript, terdapat dua jenis nilai, nilai primitif dan nilai objek. Setiap objek mempunyai prototaip harta dalaman, yang biasanya kita panggil prototaip. Nilai prototaip boleh menjadi objek atau nol. Jika nilainya ialah objek, objek itu juga mesti mempunyai prototaip sendiri. Ini membentuk rantai linear, yang kita panggil rantai prototaip. </p> <p><strong>Maksud</strong></p> <p>Fungsi boleh digunakan sebagai pembina. Di samping itu, hanya fungsi yang mempunyai atribut prototaip dan boleh diakses, tetapi contoh objek tidak mempunyai atribut ini, hanya atribut __proto__ dalaman yang tidak boleh diakses. __proto__ ialah pautan samar dalam objek kepada prototaip yang berkaitan. Mengikut piawaian, __proto__ tidak terbuka kepada orang ramai, yang bermaksud ia adalah milik persendirian, tetapi enjin Firefox mendedahkannya dan menjadikannya harta awam yang boleh kami akses dan tetapkan secara luaran. </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="90498" class="copybut" id="copybut90498" onclick="doCopy('code90498')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code90498"> <br> <script type="text/javascript"><br> var Pelayar = function(){};<br> Browser.prototype.run = function(){<br> alert("Saya Gecko, kernel firefox");<br> } <p> var Bro = Pelayar baharu();<br> Bro.run();<br> </skrip><br> </p> </div> <p>Apabila kita memanggil kaedah Bro.run(), kerana tiada kaedah sedemikian dalam Bro, dia akan pergi ke __proto__nya untuk mencarinya, iaitu Browser.prototype, jadi kaedah run() akhirnya dilaksanakan. (Di sini, huruf pertama fungsi dalam huruf besar mewakili pembina untuk membezakannya daripada fungsi biasa) </p> <p>Apabila pembina dipanggil untuk mencipta contoh, contoh akan mengandungi penunjuk dalaman (__proto__) yang menunjuk kepada prototaip pembina. Sambungan ini wujud antara contoh dan prototaip pembina, bukan antara contoh dan pembina. </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="17202" class="copybut" id="copybut17202" onclick="doCopy('code17202')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code17202"> <br> <script type="text/javascript"><br> fungsi Orang(nama){<br> This.name=name;<br> } <p> Person.prototype.printName=function(){<br> makluman(nama.ini);<br> }</p> <p> var person1=new Person('Byron');<br> var person2=Orang baharu('Frank');<br> </skrip><br> </p> </div> <p>Person instance person1 mengandungi atribut nama dan secara automatik menjana atribut __proto__, yang menghala ke prototaip Person Anda boleh mengakses kaedah printName yang ditakrifkan dalam prototaip, yang mungkin kelihatan seperti ini: </p> <p><img src="http://files.jb51.net/file_images/article/201410/201410080949421.png" alt=""></p> <p>Contoh lain: </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="37092" class="copybut" id="copybut37092" onclick="doCopy('code37092')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code37092"> <br> <script type="text/javascript"><br> Function Animal(nama) //Mengumpul pembina<br> {<br> This.name = name;//Tetapkan sifat objek<br> } <p> Animal.prototype.behavior = function() //Tambah kaedah tingkah laku pada prototaip pembina kelas asas <br> { <br> alert("ini ialah " this.name);<br> }</p> <p> var Anjing = Haiwan baharu("anjing");//Buat objek Anjing<br> var Cat = Haiwan baharu("kucing");//Buat objek Kucing</p> <p> Dog.behavior();//Panggil secara langsung kaedah tingkah laku melalui objek Dog<br> Cat.behavior();//output "ini ialah kucing"</p> <p> makluman(Kelakuan Anjing==Kelakuan Kucing);//output benar;<br> </skrip><br> </p> </div> <p>Ia boleh dilihat daripada program menjalankan hasil bahawa kaedah yang ditakrifkan pada prototaip pembina memang boleh dipanggil terus melalui objek, dan kod itu dikongsi. (Anda boleh cuba mengalih keluar atribut prototaip dalam Animal.prototype.behavior dan lihat jika ia masih berfungsi.) Di sini, atribut prototaip menghala ke objek Animal. </p> <p><strong>Instance objek tatasusunan</strong></p> <p>Lihat contoh lain objek tatasusunan. Apabila kita mencipta tatasusunan objek1, model objek sebenar tatasusunan1 dalam enjin Javascript adalah seperti berikut: </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="3980" class="copybut" id="copybut3980" onclick="doCopy('code3980')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code3980"> <br> var array1 = [1,2,3];<br> </div> <p><img src="http://files.jb51.net/file_images/article/201410/201410080949432.png" alt=""></p> <p>Objek tatasusunan1 mempunyai nilai atribut panjang 3, tetapi kita boleh menambah elemen pada tatasusunan1 melalui kaedah berikut: </p> <p>array1.push(4); Kaedah tolak datang daripada kaedah (Array.prototye.push()) yang ditunjuk oleh __proto__ ahli tatasusunan1. Ia adalah tepat kerana semua objek tatasusunan (dicipta melalui []) mengandungi ahli __proto__ yang menunjuk ke objek yang sama (Array.prototype) dengan kaedah tolak, terbalik dan lain-lain yang objek tatasusunan ini boleh menggunakan kaedah tolak, songsang dan lain-lain. <br> </p> <p>Contoh objek fungsi<strong></strong> </p> <p></p> <div class="codetitle"><span><a style="CURSOR: pointer" data="3316" class="copybut" id="copybut3316" onclick="doCopy('code3316')">Salin kod<u></u></a> Kod adalah seperti berikut:</span></div> <div class="codebody" id="code3316"> fungsi Base() { <br> This.id = "base" <br> } <br> <br> </div> <p><img src="http://files.jb51.net/file_images/article/201410/201410080949433.png" alt=""> </p> <p></p> <div class="codetitle"><span><a style="CURSOR: pointer" data="78749" class="copybut" id="copybut78749" onclick="doCopy('code78749')">Salin kod<u></u></a> Kod adalah seperti berikut:</span></div> <div class="codebody" id="code78749"> var obj = new Base(); <br> <br> </div> Apakah hasil kod ini? Model objek yang kita lihat dalam enjin Javascript ialah: <p> </p> <p><img src="http://files.jb51.net/file_images/article/201410/201410080949434.png" alt=""> </p>Apa sebenarnya yang dilakukan oleh pengendali baharu Ia sebenarnya sangat mudah, ia melakukan tiga perkara. <p> </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="52450" class="copybut" id="copybut52450" onclick="doCopy('code52450')">Salin kod<u></u></a> Kod adalah seperti berikut:</span><div class="codebody" id="code52450"> <br> var obj = {}; <br> obj.__proto__ = Pangkalan.prototaip; <br> Base.call(obj); <br> </div> <p><strong>Rantai Prototaip</strong></p> <p>Rantai prototaip: Apabila memanggil sifat atau kaedah daripada objek, jika objek itu sendiri tidak mempunyai sifat atau kaedah sedemikian, ia akan pergi ke objek prototaip yang berkaitan untuk mencarinya Jika prototaip itu tidak wujud, ia akan pergi ke persatuan prototaip. Cari prototaip pendahulu, dan jika tiada lagi, teruskan mencari objek yang dirujuk oleh Prototaip.Prototaip, dan seterusnya, sehingga Prototaip...Prototaip tidak ditentukan (Prototaip Objek tidak ditentukan) , dengan itu membentuk apa yang dipanggil "rantai prototaip". </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="4789" class="copybut" id="copybut4789" onclick="doCopy('code4789')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code4789"> <br> <script type="text/javascript"><br> Bentuk Fungsi(){<br> This.name = "shape";<br> This.toString = function(){<br> kembalikan this.name;<br> }<br> }<br> Fungsi TwoShape(){<br> This.name = "2 bentuk";<br> }<br> Segitiga Fungsi(sisi,tinggi){<br> This.name = "Segitiga";<br> This.side = sebelah;<br> This.height = ketinggian;<br> This.getArea = function(){<br> kembalikan this.side*this.height/2;<br> }<br> } <p> TwoShape.prototype = new Shape();<br> Triangle.prototype = TwoShape();<br> </skrip><br> </p> </div> <p>Di sini, entiti baharu dicipta menggunakan Shape() pembina, dan kemudian digunakan untuk mengatasi prototaip objek. </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="47773" class="copybut" id="copybut47773" onclick="doCopy('code47773')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code47773"> <br> <script type="text/javascript"><br> Bentuk Fungsi(){<br> This.name = "shape";<br> This.toString = function(){<br> kembalikan this.name;<br> }<br> }<br> Fungsi TwoShape(){<br> This.name = "2 bentuk";<br> }<br> Segitiga Fungsi(sisi,tinggi){<br> This.name = "Segitiga";<br> This.side = sebelah;<br> This.height = ketinggian;<br> This.getArea = function(){<br> kembalikan this.side*this.height/2;<br> }<br> } <p> TwoShape.prototype = new Shape();<br> Triangle.prototype = TwoShape();</p> <p> TwoShape.prototype.constructor = TwoShape;<br> Triangle.prototype.constructor = Segitiga;</p> <p> var my = Segitiga baharu(5,10);<br> My.getArea();<br> My.toString();//Triangle<br> My.constructor;//Triangle(sisi,tinggi)<br> </skrip><br> </p> </div> <p><strong>Warisan prototaip</strong></p> <p>Warisan prototaip: Pada penghujung rantai prototaip, ia ialah objek prototaip yang ditunjuk oleh atribut prototaip pembina Objek. Objek prototaip ini ialah moyang kepada semua objek. Moyang ini melaksanakan kaedah seperti toString yang sepatutnya dimiliki oleh semua objek. Prototaip pembina terbina dalam yang lain, seperti Function, Boolean, String, Date dan RegExp, semuanya diwarisi daripada nenek moyang ini, tetapi mereka masing-masing menentukan sifat dan kaedah mereka sendiri, supaya keturunan mereka menunjukkan ciri-ciri puak masing-masing. Ciri-ciri tersebut. </p> <p>Dalam ECMAScript, cara untuk melaksanakan pewarisan adalah dengan bergantung pada rantai prototaip. </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="71936" class="copybut" id="copybut71936" onclick="doCopy('code71936')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code71936"> <br> <script type="text/javascript"><br> Kotak Fungsi(){ //Fungsi yang diwarisi dipanggil jenis super (kelas induk, kelas asas) <br> This.name = "Jack";<br> } <p> function Tree(){ //Fungsi yang diwarisi dipanggil subjenis (subkelas, kelas terbitan) <br> Umur ini = 300;<br> }<br> //Melalui pewarisan rantaian prototaip, tetapkan nilai pada sifat prototaip subjenis<br> //new Box() akan menyerahkan maklumat dalam struktur kotak dan prototaip kepada Tree<br> Tree.prototype = new Box();//Tree mewarisi Kotak dan membentuk rantai melalui prototaip</p> <p> var tree = new Tree();<br> alert(tree.name);//Pop up Jack<br> </skrip><br> </p> </div> <p>Masalah dengan rantai prototaip: Walaupun rantai prototaip sangat berkuasa dan boleh digunakan untuk melaksanakan pewarisan, ia juga mempunyai beberapa masalah. Ketua antara masalah ini timbul daripada prototaip nilai yang mengandungi jenis rujukan. Sifat prototaip yang mengandungi jenis rujukan dikongsi oleh semua keadaan; inilah sebabnya sifat ditakrifkan dalam pembina dan bukannya dalam objek prototaip. Apabila pewarisan dilaksanakan melalui prototaip, prototaip sebenarnya bertukar kembali menjadi contoh jenis lain. Akibatnya, sifat contoh asal menjadi sifat prototaip. </p> <p>Apabila mencipta contoh subjenis, parameter tidak boleh dihantar kepada pembina superjenis. Malah, harus dikatakan bahawa tidak ada cara untuk menghantar parameter kepada pembina supertype tanpa menjejaskan semua contoh objek. Ditambah dengan masalah yang baru dibincangkan kerana kemasukan nilai jenis rujukan dalam prototaip, rantai prototaip sahaja jarang digunakan dalam amalan. </p> <p>Contoh lain: <br> </p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="99448" class="copybut" id="copybut99448" onclick="doCopy('code99448')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code99448"> <br> <script type="text/javascript"><br> Orang Berfungsi(nama)<br> {<br> This.name = name;//Tetapkan sifat objek<br> }; <p> Person.prototype.company = "Microsoft";//Tetapkan sifat prototaip<br> Person.prototype.SayHello = function() //Kaedah prototaip<br> { <br> alert("Hello, saya " this.name " of " this.company);<br> };</p> <p> var BillGates = Orang baru("BillGates");//Buat objek orang<br> BillGates.SayHello();//Mewarisi kandungan prototaip dan output "Hello, saya BillGates of Microsoft"</p> <p> var Jobs = new Person("Jobs");<br> Jobs.company = "Apple";//Tetapkan atribut syarikat anda sendiri, menutup atribut syarikat prototaip<br> Jobs.SayHello = function()<br> {<br> alert("Hai," this.name " seperti " this.company);<br> };<br> Jobs.SayHello();//Atribut dan kaedah ditindih oleh anda sendiri, keluarkan "Hai, Pekerjaan seperti Apple"<br> BillGates.SayHello();//Liputan Jobs tidak menjejaskan prototaip, BillGates masih mengeluarkan <br> </skrip><br> </p> </div> <p>Lihat contoh rantai prototaip berikut: </p> <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="63795" class="copybut" id="copybut63795" onclick="doCopy('code63795')"><u>Salin kod</u></a></span> Kod adalah seperti berikut:</div> <div class="codebody" id="code63795"> <br> <script type="text/javascript"><br> Tahun Fungsi(){<br> This.value = 21;<br> }<br> Tahun.prototaip = {<br> Kaedah:function(){ <p> }<br> };</p> <p> fungsi Hi(){</p> <p> };<br> //Tetapkan atribut prototaip Hi kepada objek contoh Tahun<br> Hai.prototaip = Tahun baru();<br> Hi.prototype.year = 'Hello World';</p> <p> Hi.prototype.constructor = Hai;</p> <p> var test = new Hi();//Buat contoh baharu Hi</p> <p> //Rantai prototaip<br> Uji [Hi instance]<br> Hai.prototaip [Tahun contoh]<br> {year:'Hello World'}<br> Tahun.prototaip<br> kepada objek.prototaip<br> kepada <br></skrip></p> <p><br> </p> </div>Daripada contoh di atas, objek ujian mewarisi daripada Hi.prototype dan Year.prototype; oleh itu dia boleh mengakses kaedah kaedah prototaip Tahun, dan dia boleh mengakses nilai atribut contoh <p></p>__ptoto__ atribut<p><strong> </strong>Atribut __ptoto__ (tidak disokong oleh penyemak imbas IE) ialah penunjuk dari contoh ke objek prototaip Fungsinya adalah untuk menunjuk kepada pembina atribut prototaip pembina ini, anda boleh mengakses atribut dan kaedah dalam prototaip. </p> <p>Instance objek dalam Javascript pada asasnya terdiri daripada satu siri atribut ini, terdapat atribut khas tidak kelihatan dalaman - __proto__ Nilai atribut ini menunjuk kepada prototaip contoh objek, objek sahaja prototaip yang unik. </p> <p></p> <p></p> <div class="codetitle"><span>Salin kod<a style="CURSOR: pointer" data="97312" class="copybut" id="copybut97312" onclick="doCopy('code97312')"><u></u> Kod adalah seperti berikut:</a></span></div> <script type="text/javascript"><div class="codebody" id="code97312"> Kotak Fungsi(){ //Huruf besar, mewakili pembina<br> Box.prototype.name = "trigkit4";//Atribut prototaip<br> Box.prototype.age = "21";<br> Box.prototype.run = function()//Kaedah prototaip<br> kembalikan this.name this.age 'belajar';<br> }<br> }<br> <br> var box1 = new Box();<br> var box2 = new Box(); alert(box1.constructor); // Atribut pembinaan, anda boleh mendapatkan pembina itu sendiri, <p> //Fungsi ini terletak oleh penunjuk prototaip, dan kemudian dapatkan pembina itu sendiri<br> </skrip> <br><br> <br><br>Perbezaan antara atribut __proto__ dan atribut prototaip</p> </div> <p>Prototaip ialah atribut proprietari dalam objek fungsi. <strong> __proto__ ialah atribut tersirat objek biasa Apabila baru digunakan, ia akan menunjuk ke objek yang ditunjuk oleh prototaip; __ptoto__ sebenarnya merupakan atribut objek entiti, manakala prototaip ialah atribut kepunyaan pembina. __ptoto__ hanya boleh digunakan dalam persekitaran pembelajaran atau penyahpepijatan. </strong> </p>Proses pelaksanaan mod prototaip<p> <br>1. Mula-mula cari atribut atau kaedah dalam contoh pembina, dan jika ada, kembalikannya dengan segera. <br> 2. Jika tiada contoh pembina, cari dalam objek prototaipnya Jika ada, kembalikan segera </p> <p></p> <p><br> objek prototaip </p> <p><strong></strong></p>Salin kod<p></p> <div class="codetitle"><span> Kod adalah seperti berikut:<a style="CURSOR: pointer" data="70204" class="copybut" id="copybut70204" onclick="doCopy('code70204')"><div class="codebody" id="code70204"> <br> <script type="text/javascript"><br> Kotak Fungsi(){ //Huruf besar, mewakili pembina<br> Box.prototype.name = "trigkit4";//Atribut prototaip<br> Box.prototype.age = "21";<br> Box.prototype.run = function()//Kaedah prototaip<br> kembalikan this.name this.age 'belajar';<br> }<br> }<br> var box1 = new Box();<p> alert(box1.name);//trigkit4, nilai dalam prototaip<br> box1.name = "Lee";<br> alert(box1.name);//Lee, masukkan sahaja prinsip<br> </p> var box2 = new Box();<p> alert(box2.name);//trigkit4, nilai prototaip belum diubah suai oleh box1<br> </skrip><br> <br></p> </div> <p>Pembina<strong></strong> </p> <p></p> <div class="codetitle"><span><a style="CURSOR: pointer" data="78085" class="copybut" id="copybut78085" onclick="doCopy('code78085')">Salin kod<u></u></a> Kod adalah seperti berikut:</span></div> <div class="codebody" id="code78085"> <script type="text/javascript"><br> Kotak fungsi(){ This.name = "Bill";<br> }<br> <br> Box.prototype.name = "trigkit4";//Atribut prototaip Box.prototype.age = "21";<p> Box.prototype.run = function()//Kaedah prototaip<br> { <br> kembalikan this.name this.age 'belajar';<br> }<br> <br> var box1 = new Box();</p> alert(box1.name);//Bill, nilai dalam prototaip<p> box1.name = "Lee";<br> alert(box1.name);//Lee, masukkan sahaja prinsip<br> </skrip><br> <br><br></p> </div></a></span></div> </div>