Dưới đây là một câu hỏi trong JavaScript dưới đây:Tại sao "foo" .toString() không giống với toString.call ("foo")?
// Tested via Google Chrome console.
var toString = Object.prototype.toString;
"foo".toString(); // "foo"
toString.call("foo"); // [object String]
[].toString(); // ""
toString.call([]); // [object Array]
{}.toString(); // syntax error
toString.call({}); // [object Object]
Tại sao kết quả của toString là khác nhau với toString.call()?
CẬP NHẬT
String.prototype.toString.call("foo"); // "foo"
Object.prototype.toString.call("foo"); // [object String]
là String.prototype.toString không từ chuỗi mẫu như dưới đây?
toString trong String [không tìm thấy] -> toString trong String.prototype [không tìm thấy]
--> toString in Object.prototype[found]
Không phải là một chuyên gia về javascript, nhưng tôi nghi ngờ nó đã làm với cách gọi một chức năng được xác định trước và đi qua nó một tham số null như trái ngược với gọi một hàm trên một đối tượng không tồn tại. – bdares
Làm thế nào để bạn kiểm tra các kết quả đó? Bảng điều khiển trình duyệt hoặc cái gì khác? –
@ShadowWizard Bảng điều khiển trình duyệt Chrome. –