2017-09-26 84 views
0

我無法找到在underscore.js中實現了_.isString方法的位置/方式。我只是好奇,看看它是如何實施的,但這對我來說是個謎。下劃線_.isString函數在哪裏?

我知道有很多更好的方法去檢查一個對象是否是一個字符串,這不是我的錯誤,我只是很好奇__isistring()方法在不在源代碼中時是如何工作的。

僅供參考這裏是下劃線來源:http://underscorejs.org/underscore.js

回答

2

如果你做一個按Ctrl + F爲 「isString」 這是大約80%的一路下跌:

// Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError. 
_.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) { 
    _['is' + name] = function(obj) { 
    return toString.call(obj) === '[object ' + name + ']'; 
    }; 
}); 

_.isString擴展爲:

_.isString = function(obj) { 
    return toString.call(obj) === '[object String]' 
} 
+1

很容易直接引用源代碼〜https://github.com/jashkenas/underscore/blob/master/underscore.js#L1319 – Phil

+1

謝謝!沒有意識到,他們產生這樣的功能。我在想有一段時間魔術持續了一段時間 –

+0

我很高興他們把它放在評論中,因爲我已經跑了幾次。 :)太多的魔法可能會導致混亂,以節省字節爲代價。 – Phix