console.log
lấy số lượng đối số không xác định và đổ nội dung của chúng trong một dòng.Truyền đối số cho console.log làm đối số lớp đầu tiên qua chức năng proxy
Có cách nào tôi có thể viết một hàm chuyển đối số được truyền trực tiếp đến console.log
để duy trì hành vi đó không? Ví dụ:
function log(){
if(console){
/* code here */
}
}
này sẽ không được giống như:
function log(){
if(console){
console.log(arguments);
}
}
Kể từ arguments
là một mảng và console.log
sẽ đổ nội dung của mảng đó. Nó cũng sẽ không giống như:
function log(){
if(console){
for(i=0;i<arguments.length;console.log(arguments[i]),i++);
}
}
Vì điều đó sẽ in mọi thứ theo các dòng khác nhau. Vấn đề là để duy trì hành vi của console.log
, nhưng thông qua chức năng proxy log
.
+ ---
tôi đang tìm kiếm một giải pháp tôi có thể áp dụng cho tất cả các chức năng trong thời gian tới (tạo một proxy cho một chức năng duy trì việc xử lý các đối số còn nguyên vẹn). Tuy nhiên, nếu điều đó không thể thực hiện được, tôi sẽ chấp nhận một câu trả lời cụ thể là console.log
.
Tính năng này không hoạt động trong Chrome/Safari. Nó ném một lỗi "Yêu cầu bất hợp pháp". – aditya
@aditya, mã cập nhật .. tôi đã không sử dụng đúng ngữ cảnh .. bạn cần phải chuyển 'giao diện điều khiển' làm đối số' this' này để áp dụng .. –
Tuyệt vời. Điều đó hiệu quả. Cảm ơn! – aditya