Hỏi về gán với Object trong js

let objN= obj;
objN[3][4] = 5;

Với obj là mảng 2 chiều toàn số 0. Cho e hỏi tại sao obj[3][4] cũng bằng 5 ạ?

Tạm nói ngắn thì bạn hiểu JS có 2 kiểu dữ liệu: primitive và object (để tìm hiểu sâu hơn bạn đọc bài này https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures)

Primitive là các kiểu như number, boolean… khi bạn gán giá trị cho nó thì bạn đang pass by value, tức là a = 5; b = a; thì đây là 2 biến khác nhau, thao tác trên a không ảnh hưởng tới b và ngược lại.

Object là kiểu như bạn định nghĩa (ngoài ra còn có array - [], again, bạn cần đọc link trên). Khi gán giá trị bạn đang pass by reference, tức là a = b thì khi a thay đổi, b cũng sẽ thay đổi theo và ngược lại.

Những phần in đậm nếu chưa hiểu, bạn google thêm nhé.

5 Likes

dạ e hiểu rồi. E cảm ơn nhiều bác nhiều ạ!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?