วิธีการ clone object ใน javascript ให้ไม่เป็น pointer (เมื่อ แก้ค่าในตัวลูกแล้วตัวแม่จะได้ไม่ถูกแก้ค่าตามไปด้วย) by tosawat
Jul0
วิธีการ clone object ใน javascript ให้ไม่เป็น pointer (เมื่อ แก้ค่าในตัวลูกแล้วตัวแม่จะได้ไม่ถูกแก้ค่าตามไปด้วย)
มีอยู่ 2 วิธีด้วยกันคือ
1. เขียนฟังชั่นวนลูปทุก attribute ใน object ตัวต้นแบบแล้ว copy แต่ไส้ในสุดของ object ที่อยู่ใน type พื้นฐานเช่น int,string ไปใส่ใส object ตัวใหม่แล้ว return object ตัวใหม่ออกมา
2. วิธีนี้ง่ายมาก คือ การ encode object ตัวต้นแบบ แล้วก็ decode อีกรอบเพื่อให้ ได้แต่ค่าต่างๆใน object เท่านั้น ไม่สืบทอดคุณสมบัติอื่นๆด้วย
ตัวอย่างของข้อ 1
function clone(objOld){
var objNew = new Object();
for(var i in objOld){
if(typeof(objOld[i]) == ‘object’ || typeof(objOld[i]) == ‘array’){
objNew[i] = clone(objOld[i]);
}else{
objNew[i] = objOld[i];
}
}
return objNew;
}
a = {a:{a:{a:1,b:2},b:{a:1,b:2}},b{}};
b = clone(a);
ตัวอย่างของข้อ 2
a = {a:{a:{a:1,b:2},b:{a:1,b:2}},b{}};
b = JSON.parse(JSON.stringify(a));
เห็นไหม ข้อ 2 ง่ายกว่า เห็นๆไม่ต้องเขียน code เพิ่มเลย ที่สำคัญนะ ข้อ 2 เร็วกว่าด้วยนะ แต่ก็มีวิธีทำให้ข้อ 1 เร็วขึ้นนะไว้ต่อคราวหน้าละกันนะ
(ไทย) เปลี่ยนไฟล์วีดีโอ เป็นภาพ .GIF (ขนาดเล็ก) by nontra
Jul0
Sorry, this entry is only available in ไทย.
Editing Visual Property of RichEditableText by Ziah
Jul0
Sorry, this entry is only available in ไทย.