2013-03-29 58 views

Trả lời

5

arguments là một biến ảo không thực sự là một mảng. Nó hoạt động giống như một Array, nhưng nó không có tất cả các chức năng mà một Array có.

Các đối tượng khác như thế này là NodeList chẳng hạn.

+1

Ok @Frits van Campen. Tôi đạt được rồi. Tôi chạy nó để kiểm tra kiểu của nó: console.log (Object.prototype.toString.call (x())); Cả hai trở về cùng một kết quả: [đối số đối số] –

+0

Tuyệt vời, tôi không biết bạn có thể làm điều đó =) – Halcyon

+0

rất vui nhộn. LoL –

2

console.log không phải là một phần của javascript và không phải là một phần của v8. Đó là lý do tại sao cả chrome và node.js đều có cài đặt riêng của console.log. Họ có apis simular, nhưng không giống nhau. Tài liệu dành cho console.log của nút có tại đây: http://nodejs.org/api/stdio.html

6

Bạn thấy biểu diễn khác nhau của đối tượng không phải là mảng trong Chrome, không có trong nút và trong javascript nói chung.

Nếu bạn muốn một mảng ra khỏi nó, bạn làm điều đó:

var args = Array.prototype.slice.call(arguments, 0); 
+0

Điều này đã lưu tôi làm công việc trong nút, nơi tôi cho rằng đối số là một mảng. Nhà phát triển ngớ ngẩn js. Trình duyệt dành cho trẻ em. "thực tập viên": { lệnh: function() { var cmdArgs = ""; var args = Array.prototype.slice.call (đối số, 0); nếu (args) { cmdArgs = args.join (""); } trả về 'nút node_modules/intern/bin/intern-runner config = app/intern-config' + cmdArgs; } }, – httpete

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