คุณสมบัติและวิธีการที่สามารถเข้าถึงได้โดยทุกกรณีที่สามารถเข้าถึงได้ใน JavaScript ใน JavaScript ส่วนหนึ่งของความรู้
คำจำกัดความประเภทพื้นฐานมีดังนี้:
คัดลอกรหัสรหัสดังนี้:
ฟังก์ชันบุคคล () {}
person.prototype = {
ตัวสร้าง: บุคคล
ชื่อ: "บุคคล",
อายุ: 100,
เพื่อน: [a "," b "] ,,
getName: function () {
ส่งคืนสิ่งนี้ชื่อ;
-
-
กำหนดตัวอย่างของสองคนแก้ไขคุณสมบัติชื่อในอินสแตนซ์ (แอตทริบิวต์ถูกกำหนดไว้ในต้นแบบ) รหัสทดสอบมีดังนี้
คัดลอกรหัสรหัสดังนี้:
var p1 = คนใหม่ ();
var p2 = คนใหม่ ();
document.write (p1.name+"<br/>");
document.write (p2.name+"<br/>");
p1.name = "p1";
document.write (p1.name+"<br/>");
document.write (p2.name+"<br/>");
document.write (p1.hasownproperty ("ชื่อ")+"<br/>");
document.write (p2.hasownproperty ("ชื่อ")+"<br/>");
document.write (object.keys (p1)+"<br/>");
document.write (object.keys (p2)+"<br/>");
document.write (object.get.getownpropertynames (person.prototype)+"<br/>");
document.write (person.prototype.name+"<br/>");
หลังจากการทดสอบพบว่า p1.name = "p1" ไม่ได้แก้ไขค่าของชื่อ แต่เพิ่มแอตทริบิวต์ชื่อลงใน NAMEPE ในอินสแตนซ์ P1 Object.keys (P1) สามารถเห็นได้ว่ามีแอตทริบิวต์ชื่อเพิ่มเติมในอินสแตนซ์ P1 โดยไม่มี P2 การส่งสัญญาณทั้งหมดใน JS คือการส่งค่า รหัสเพื่อแสดงปัญหานี้
คัดลอกรหัสรหัสดังนี้:
var obj = วัตถุใหม่ ();
obj.name = "obj";
ฟังก์ชั่น ChangeObj (o) {
o.name = "เปลี่ยน";
o = วัตถุใหม่ ();
o.name = "newobj";
-
Changeobj (obj);
document.write (obj.name);
ในเมธอด dustionobj, o = object ใหม่ () ไม่ได้แก้ไขค่าของพารามิเตอร์ o แต่ตัดความสัมพันธ์อ้างอิงดั้งเดิมดังนั้นผลลัพธ์จึงไม่ใช่ newobj แต่เปลี่ยนไป แต่เปลี่ยนไป
การทดสอบครั้งต่อไปเพื่อแก้ไขแอตทริบิวต์ของเพื่อนในต้นแบบในตัวอย่างแรก
คัดลอกรหัสรหัสดังนี้:
p1.friends.push ("C");
document.write (p1.friends+"<br/>");
document.write (p2.friends+"<br/>");
p1.friends = ["x", "y", "z"];
document.write (p1.friends+"<br/>");
document.write (p2.friends+"<br/>");
document.write (p1.hasownproperty ("เพื่อน")+"<br/>");
document.write (p2.hasownproperty ("เพื่อน")+"<br/>");
document.write (object.keys (p1)+"<br/>");
document.write (object.keys (p2)+"<br/>");
document.write (object.get.getownpropertynames (person.prototype)+"<br/>");
document.write (person.prototype.friends+"<br/>");
ผลการทดสอบนั้นเหมือนกับการทดสอบครั้งแรก
จากผลการทดสอบทั้งสองนี้พบว่าแอตทริบิวต์ประเภทค่าในต้นแบบไม่สามารถแก้ไขได้โดยตรงในอินสแตนซ์ (แน่นอนว่าประเภทค่านี้ไม่ควรกำหนดในต้นแบบ