ตัวสร้าง
วัตถุใหม่ ()
วัตถุใหม่ (ค่า)
พารามิเตอร์
ค่า
พารามิเตอร์ทางเลือกที่ประกาศค่าดั้งเดิม (เช่นตัวเลขค่าบูลีนหรือสตริง) ที่จะแปลงเป็นวัตถุตัวเลขวัตถุบูลีนหรือวัตถุสตริง วัตถุนี้ไม่ได้รับการสนับสนุนโดย JavaScript ก่อน 1.1 และ Ecmascript VL
ค่าส่งคืน
หากไม่มีพารามิเตอร์ค่าถูกส่งผ่านไปยังตัวสร้างมันจะส่งคืนอินสแตนซ์วัตถุที่สร้างขึ้นใหม่ หากมีการระบุพารามิเตอร์ค่าดั้งเดิมตัวสร้างจะสร้างและส่งคืนวัตถุ wrapper ค่าดั้งเดิมคือวัตถุตัวเลขวัตถุบูลีนหรือวัตถุสตริง เมื่อไม่ได้ใช้ตัวดำเนินการใหม่ตัวสร้าง Object () จะเรียกว่าเป็นฟังก์ชันมันจะทำงานเหมือนเมื่อใช้ตัวดำเนินการใหม่
คุณสมบัติ
ตัวสร้าง
อ้างอิงถึงฟังก์ชัน JavaScript ที่เป็นตัวสร้างวัตถุ
วิธี
1.HasownProperty ()
ตรวจสอบว่าวัตถุนั้นมีคุณสมบัติที่กำหนดไว้ในเครื่อง (ไม่ได้อยู่ในพื้นที่) ที่มีชื่อเฉพาะหรือไม่
การคัดลอกรหัสมีดังนี้:
<script type = "text/javascript">
var o = วัตถุใหม่ ();
O.Name = "Tom";
การแจ้งเตือน (O.HasownProperty ("ชื่อ")); //จริง
การแจ้งเตือน (O.HasownProperty ("อายุ")); //เท็จ
</script>
2. isprototypeof ()
ไวยากรณ์
Object.isprototypeof (O)
พารามิเตอร์
โอ
วัตถุใด ๆ
ค่าส่งคืน
ส่งคืนจริงถ้าวัตถุเป็นต้นแบบของ O. ถ้า o ไม่ใช่วัตถุหรือวัตถุไม่ใช่ต้นแบบของ O ดังนั้นเท็จจะถูกส่งคืน
อธิบาย
วัตถุ JavaScript สืบทอดคุณสมบัติของวัตถุต้นแบบ ต้นแบบของวัตถุอ้างอิงโดยแอตทริบิวต์ต้นแบบของตัวสร้างที่ใช้ในการสร้างและเริ่มต้นวัตถุ วิธี isprototypeof () ให้วิธีการในการพิจารณาว่าวัตถุเป็นต้นแบบของวัตถุอื่นหรือไม่ วิธีนี้สามารถใช้เพื่อกำหนดคลาสของวัตถุ
ตัวอย่าง
การคัดลอกรหัสมีดังนี้:
var o = วัตถุใหม่ (); // สร้างวัตถุ
Object.prototype.isprototypeof (o) // true: o เป็นวัตถุ
function.prototype.isprototypeof (O.ToString); // true: ToString เป็นฟังก์ชัน
array.prototype.isprototypeof ([1,2,3]); // true: [1,2,3] เป็นอาร์เรย์
// ต่อไปนี้เป็นอีกวิธีหนึ่งในการทดสอบเดียวกัน
(O.Constructor == วัตถุ); // true: o ถูกสร้างขึ้นด้วย Object () Constructor
(O.ToString.Constructor == ฟังก์ชั่น); // true: O.ToString เป็นฟังก์ชัน
/ต้นแบบวัตถุเองเป็นวัตถุต้นแบบ การโทรต่อไปนี้ส่งคืนจริง
// คำแนะนำฟังก์ชั่นสืบทอดฟังก์ชันคุณสมบัติ prototype และ object.prototype
Object.prototype.isprototypeof (function.prototype);
3.Proertyisenumerable ()
ไวยากรณ์
Object.propertyisenumerable (Propname)
พารามิเตอร์
ชื่อนำ
สตริงที่มีชื่อของต้นแบบวัตถุ
ค่าส่งคืน
ส่งคืนจริงถ้าวัตถุมีคุณสมบัติที่ไม่ได้อยู่ในชื่อ Propname และคุณสมบัติที่สามารถระบุได้ (เช่นสามารถระบุได้ด้วยการ/ในลูป)
อธิบาย
ใช้คำสั่งสำหรับ/ในเพื่อสำรวจคุณสมบัติของวัตถุ "enumerable" แต่ไม่ใช่คุณสมบัติทั้งหมดของวัตถุที่สามารถระบุได้ แอตทริบิวต์ที่เพิ่มเข้ามาในวัตถุผ่านรหัส JavaScript นั้นมีอยู่ในขณะที่คุณสมบัติที่กำหนดไว้ล่วงหน้า (เช่นวิธีการ) ของวัตถุภายในมักจะไม่สามารถระบุได้ วิธีการที่มีคุณสมบัติเหมาะสม () เป็นวิธีการแยกความแตกต่างระหว่างคุณสมบัติที่สามารถระบุได้และคุณสมบัติที่ไม่สามารถใช้งานได้ แต่โปรดทราบว่ามาตรฐาน ECMASCRIPT กำหนดว่าวิธีการ Propertyisenumerable () ไม่ได้ตรวจพบห่วงโซ่ต้นแบบซึ่งหมายความว่ามันใช้กับคุณสมบัติท้องถิ่นของวัตถุเท่านั้นและไม่สามารถตรวจจับการแจงนับของคุณสมบัติที่สืบทอดมาได้
ตัวอย่าง
การคัดลอกรหัสมีดังนี้:
var o = วัตถุใหม่ (); // สร้างวัตถุ
OX = 3.14; // กำหนด - คุณลักษณะ
o.propertyisenumerable ("x"); // True Property X เป็นท้องถิ่นและมีความสามารถพิเศษ
o.propertyisenumerable ("y"); // false: o ไม่มีแอตทริบิวต์ y
o.propertyisenumerable ("toString"); // false: คุณสมบัติ tostrlng ได้รับการสืบทอด
Object.prototype.propertyisenumerable ("ToString"); // false: แจกแจง
ข้อผิดพลาด
เห็นได้ชัดว่ามันผิดเมื่อมีคุณสมบัติ จำกัด มาตรฐาน () เพื่อตรวจจับคุณสมบัติที่ไม่ติดอยู่เท่านั้น Internet Explorer 5.5 ใช้วิธีนี้ตามมาตรฐาน วิธีการ Propertyisenumerable () ที่ใช้ใน Nestacpe 6.0 คำนึงถึงห่วงโซ่ต้นแบบ ในขณะที่วิธีการนี้เป็นที่ต้องการมันขัดแย้งกับมาตรฐานดังนั้น Netscape 6.1 แก้ไขให้ตรงกับ IE 5.5 เนื่องจากมีข้อผิดพลาดนี้ในมาตรฐานวิธีนี้จึงไม่เป็นประโยชน์
การคัดลอกรหัสมีดังนี้:
<script>
var obj = วัตถุใหม่ ();
obj.title = 'aaa';
obj.funb = ฟังก์ชั่น (a, b)
-
การแจ้งเตือน (a+b);
-
การแจ้งเตือน (obj.title);
obj.funb (1,2);
</script>
นี่คือวิธีการ
-
การคัดลอกรหัสมีดังนี้:
<ภาษาสคริปต์ = "JavaScript">
วัตถุฟังก์ชัน (ค่า, a, b) {
this.title = ค่า;
this.funb = function () {
this.a = a;
this.b = b;
การแจ้งเตือน (a+b);
-
-
var obj = วัตถุใหม่ ("AAA", 1,2);
การแจ้งเตือน (obj.title);
obj.funb ();
// เพิ่มวิธีการใหม่ลงในวัตถุที่นี่
Object.prototype.name = "123456";
การแจ้งเตือน (obj.name);
</script>
นี่เป็นอีกวิธีหนึ่ง