我現在正在學習JavaScript,看起來像美麗的函數式語言對我來說,這是來自PHP的美妙動作,我應該早些做過。雖然,我不明白這一個:調用時分配給變量或函數參數的對象方法失敗
var v1 = (/[abc]/).test;
v1('a');
說test method called on incompatible undefined
,我試圖存儲正則表達式爲可變的測試方法和以後調用它。
,但它與我自己的功能:
function foo(){
return 'I\'m foo';
}
var f = foo;
f(); // returns I'm foo
應該對方法的工作也是如此,因爲函數只是父對象的方法呢,對吧?
最後,我想這樣做的原因是爲了能夠寫出這樣的事:
var a = ['a', 'b', 'c'];
a.every((/[abc]/).test);
檢查每個數組成員針對該正則表達式。
爲什麼不能正常工作?它傳遞內置函數的限制嗎?或者我只是做錯了什麼?
PS:如果你現在和消音一些關於不良做法磨牙齒,擰好做法,我只是玩。但我也想聽到他們的消息。
非常棒的答案,非常感謝! – enrey
不客氣! –
請注意,在嚴格模式下,'this'應該是未定義的。 – RobG