2012-03-01 34 views
7

JSLint giữ cho tôi những lỗi sau khi xác định 2 chức năng:JSLint lỗi "bất ngờ Var"

Vấn đề ở dòng __ nhân vật _: bất ngờ 'var'.

Tôi đã thử khai báo tất cả các vars ở đầu tập lệnh nhưng điều này không giải quyết được vấn đề. Đã cố gắng đào qua web để tìm câu trả lời nhưng dường như không thể tìm thấy câu trả lời.

var walk = function walker(node, func) { 
    //code 
} 

var disp= function display(){ 
    //code 
    return d; 
} 
+2

JSLint có thể khiếu nại về thiếu 'dấu chấm phẩy ' – xandercoded

+0

bạn không cần phải thêm tên hàm khi bạn chỉ đặt tên trong biến. biến này dùng làm tên của nó. – Joseph

+1

JSHint sẽ cho bạn biết - http://www.jshint.com/reports/215010 – sransara

Trả lời

6

Hãy thử tuyên bố họ như thế này:

var walker = function (node, func) { 
    //code 
}; 
var display = function() { 
    //code 
    return d; 
}; 

Vấn đề với:

var walk = function walker(node, func) { 
    //code 
}; 

là JSLint hy vọng walk được hoặc chỉ định một chức năng hay kết quả của hàm. Nếu bạn muốn gán một hàm cho biến, tên biến sẽ trở thành bí danh của hàm. Để làm cho JSLint vui vẻ, nó phải là một hàm ẩn danh.

+0

Có lẽ, nhưng câu hỏi đặt ra là làm sao để JSLint hài lòng với nó. Đã sửa đổi ngôn ngữ trong câu trả lời. – pete

1

Hãy thử điều này:

var walk = function(node, func) { 
    //code 
}; 

var disp = function(){ 
    //code 
    return d; 
}; 

Trong JavaScript, chức năng của bạn là một biến với tên mà bạn sử dụng ở phía bên trái của nhiệm vụ.

+0

@Xander Tuy nhiên, việc khai báo các hàm được đặt tên không dẫn đến một đối tượng hàm được trả về, do đó việc đặt nó ở phía bên phải của một nhiệm vụ không giúp ích gì. – dragon

2

Bạn đã quên dấu chấm phẩy sau lần khai báo đầu tiên.

+0

xin lỗi, mã thực tế không có dấu chấm phẩy sau lần khai báo đầu tiên- bỏ qua nó khi sao chép trên – user1243918

+2

@ user1243918 Có lẽ bạn sẽ chỉnh sửa câu hỏi của mình để phản ánh điều đó? Dường như có sự nhầm lẫn ở đây là vấn đề thực tế là gì. –

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