ก่อนอื่นเข้าใจคุณสมบัติ enum
โดยทั่วไปใช้ ~ ใน traversal
var a = [1,2,3]; สำหรับ (var i ใน a) {console.log (a [i]);} orvar o = {p1: 1, p2: 2}; สำหรับ (var i ใน o) {console.log (i+'='+o [i]);} // p1 = 1; p2 = 2;<1> คุณลักษณะทั้งหมดจะไม่แสดงใน For ~ ใน Traversal ตัวอย่างเช่นแอตทริบิวต์ความยาวและอาร์เรย์) และแอตทริบิวต์ตัวสร้าง คุณสมบัติเหล่านั้นที่แสดงจะเรียกว่า enumerables และคุณสมบัติที่สามารถกำหนดได้โดยวิธีการ Propertyisenumerable () ที่จัดทำโดยแต่ละวัตถุ
<2> แต่ละแอตทริบิวต์ในห่วงโซ่ต้นแบบจะปรากฏขึ้นโดยมีเงื่อนไขว่าพวกเขาจะได้รับการแจกแจง, hasownproperty () เพื่อตรวจสอบว่าคุณสมบัติเป็นคุณสมบัติของวัตถุหรือคุณสมบัติต้นแบบ;
<3> สำหรับคุณสมบัติต้นแบบทั้งหมด Propertyisenumerable () จะกลับมาเป็นเท็จ
ตัวอย่างรหัส JS
ฟังก์ชั่นสุนัข (ชื่อ, สี) {this.name = name; this.color = color; this.somemethod = function () {return 1;}} dog.prototype.price = 100; dog.prototype.rating = 3; var newdog = สุนัขใหม่ ("doggg", "เหลือง"); newdog) {console.log (prop+'='+newdog [prop]);} // name = doggg // color = yellow // somemethod = function () {return 1;} // ราคา = 100 // rating = 3newdog.hasownproperty ('name';แสดงเฉพาะคุณสมบัติของตัวเอง
สำหรับ (var prop ใน newdog) {ถ้า (newdog.hasownproperty (prop)) {console.log (prop+'='+newdog [prop]);}} newdog.propertyisenumerable ('name');หมายเหตุ: คุณสมบัติและวิธีการในตัวส่วนใหญ่ไม่สามารถระบุได้
คุณลักษณะใด ๆ จากห่วงโซ่ต้นแบบก็ไม่สามารถระบุได้เช่นกัน
หากการเรียกไปยัง Propertyisenumerable () มาจากวัตถุบนห่วงโซ่ต้นแบบแล้วคุณสมบัติในวัตถุนั้นจะแจกแจงได้
newdog.constructor.prototype.propertyisenumerable ('ราคา'); // trueisprototypeof (): แต่ละวัตถุมีมันระบุว่าวัตถุปัจจุบันเป็นต้นแบบของวัตถุอื่น
ตัวอย่างรหัส JS
var monkey = {ผม: จริง, ฟีด: 'กล้วย', ลมหายใจ: 'อากาศ'}; ฟังก์ชั่นมนุษย์ (ชื่อ) {this.name = name;} human.prototype = Monkey; var George = มนุษย์ใหม่ ('George');ข้างต้นคือ HasownProperty (), Propertyisenumerable () และ isprototypeof () ใน JS แนะนำให้คุณรู้จักโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!