2011-05-31 32 views
3

我爲「between」功能做了一個原型。 爲什麼我不能直接在數字上使用它?它是數字對象!JavaScript原型功能不能正常工作

var a = 21; 
21.between("(16 20 ]"); // this is wrong and not working 
//alert (typeof 21) is number 
a.between("(16 20 ]"); // working 
+1

有興趣的答案可以這樣做。在一個相關的說明中,我寫了一個小東西,它使用更加結構化的方法來間隔並將它們轉換爲/你可能感興趣的字符串:https://github.com/hostilefork/jquery-numband/blob/e15091d72f172b83f56b6f45e3f4aac4883a4420 /jquery-numband.js#L9 – HostileFork 2011-05-31 16:34:33

+0

我不建議擴展原生原型。您可能會在更高版本的JavaScript中遇到名稱空間衝突,並且意外覆蓋標準方法,從而令所有人感到困惑。 – 2013-01-31 12:55:06

回答

6

嘗試:

(21).between("(16 20 ]"); 

當解析器(當然,詞法分析器)看見 「21。」它認爲你有一個浮點常量。什麼也適用(以及我個人看起來真的很癢)是:

21..between("(16 20 ]"); 
+0

@Brünnhilde是的,這是正確的。該語言很樂意做這類事情,但有時候因爲語法阻礙而不能這樣做。 – Pointy 2011-05-31 16:27:20