2012-10-24 25 views
8

thể trùng lặp:
How can I check if a javascript variable is function type?Node js kiểm tra nếu một var là một chức năng

Làm thế nào tôi kiểm tra nếu một biến là một hàm cho mảng tồn tại Array.isArray() nhưng Function.isFunction dos'nt tồn tại

+0

http://stackoverflow.com/q/5999998/ –

+0

Đáng nói rằng/câu trả lời tốt nhất được chấp nhận ở đây là đơn giản hơn so với các câu hỏi tham chiếu, vì đây là chỉ dành riêng cho nút (không vấn đề tương thích) –

Trả lời

29
if (typeof variable === 'function') { 
    // do something 
} 
3

Bạn có thể sử dụng toán tử instanceof.

var fn = function() {}; 
var result = fn instanceof Function; // result will be true 

Nó cũng tôn trọng thừa kế nguyên mẫu.

1
var fn = function() {}, 
    toString = Object.prototype.toString; 

first way: 

if(toString.call(function(){}) === '[object Function]') { 
    //if is Function do something... 
} 

second way: 

if(fn.constructor.name = 'Function') { 
    //if is Function do something... 
} 

Hy vọng nó sẽ giúp cổ vũ :)!

5

Underscore.js là thư viện có nhiều người trợ giúp hữu ích, như người bạn đang tìm kiếm.

http://underscorejs.org/

_ = require('underscore'); 

var aFunction = function() { }; 
var notFunction = 'Not a function'; 

_.isFunction(aFunction); // true 
_.isFunction(notFunction); // false 
+0

Tôi sẽ không sử dụng dấu gạch dưới cho trường hợp này, vì hàm _.isFunction chỉ là 'typeof obj == 'function' || false' - https://github.com/jashkenas/underscore/blob/e944e0275abb3e1f366417ba8facb5754a7ad273/underscore.js#L1338 – tylucaskelley

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