Các MDN nói:Loại dữ liệu của chức năng: chức năng hoặc đối tượng? trong JavaScript
Sáu kiểu dữ liệu mà nguyên thủy:
- Boolean
- Null
- Undefined
- Số
- Chuỗi
Symbol (mới trong ECMAScript 6)
và Object
Nhưng tôi nhầm lẫn, loại chức năng dữ liệu và đối tượng kiểu dữ liệu.
Hãy xem:
var func = function() {
console.log ('Hello World ! ')
};
var obj = {
property : something
}
console.log(typeof(func)); // ===> function
console.log(typeof(obj)); // ===> object
Là nó khác loại chức năng dữ liệu và dữ liệu đối tượng loại? Tại sao typeof(func)
là chức năng? không phải là một đối tượng? Tài liệu cho biết có 7 kiểu dữ liệu (6 nguyên thủy, 1 đối tượng). chức năng không bao gồm bất cứ nơi nào. Cho đến nay, hơn 1 năm, tôi nghĩ rằng kiểu dữ liệu của hàm là đối tượng, tôi nghe hàm này là đối tượng lớp đầu tiên trong JavaScript, vì vậy tôi không nghi ngờ về hàm là đối tượng nhưng hôm nay tôi nghĩ nhiều thời gian hơn và tự hỏi .
Có khác biệt không?
Nó trả về hàm nhưng đối tượng hàm của nó là https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Tham chiếu/Toán tử/typeof –
'typeof' không trả về * Kiểu dữ liệu *. – Bergi
'typeof' không báo cáo loại dữ liệu thực của giá trị. Đây là bảng tra cứu ánh xạ loại dữ liệu và các đặc điểm giá trị khác cho một tên: http://www.ecma-international.org/ecma-262/6.0/index.html#sec-typeof-operator. Các hàm là các đối tượng có thuộc tính '[[Gọi]] bên trong. Đó là lý do tại sao 'typeof null' là' "object" '(\ * grumpy face \ *). –