2011-12-29 23 views
5

Bạn có thể đặt the internal [[Class]] property đối tượng ECMAScript không?Bạn có thể đặt thuộc tính [[Class]] bên trong của đối tượng ECMAScript không?

+2

Lưu ý rằng nội bộ [[Lớp]] bất động sản sẽ được loại bỏ trong ES6. – Raynos

+0

@Raynos Thú vị. Vậy làm thế nào 'Array.isArray()' và các hàm tương tự sẽ hoạt động như thế nào? –

+0

không chắc chắn, họ sẽ sử dụng một số phát hiện hợp lý, có thể 'Array.protototype.isPrototypeOf (someArray);' – Raynos

Trả lời

1

Bạn không thể lừa các công cụ javascript phong nha.

Bạn có thể lừa đang đất dùng với

x.toString = function() { 
    return '[object Array]'; 
} 
+5

Điều này sẽ không hoạt động với' Object.prototype.toString.call (đối tượng) '. – xfix

+0

@xfix Người ta luôn có thể ghi đè 'Object # toString' (mặc dù không được đề nghị) – minmaxavg

+0

@minmaxavg Nhưng lý do người ta muốn ghi đè' [[class]] 'thường là vì họ muốn sử dụng nó với' Object.prototype .toString.call' để lấy loại đối tượng. – Taurus

Các vấn đề liên quan