如何将 `RegExp.test` 部分应用于字符串?

How to partially apply `RegExp.test` to a string?

为什么这不起作用:

var func = /o/.test;
func("hello");
// VM165:1 Uncaught TypeError: Method RegExp.prototype.test called on incompatible receiver undefined
//     at test (<anonymous>)
//     at <anonymous>:1:1
// (anonymous) @ VM165:1

但是这样做:

/o/.test("hello");
// true

编辑

使用callbind方法。

// Call Approach
    var func = /o/.test;
    func.call(/o/, "hello")

//Bind Approach
    var func = /o/.test.bind(/o/);
    func("hello");

当您从 Object 获取方法并将其分配给变量时,您需要为 this 提供绑定,因为上下文( Object )不会随方法一起传递。

var func = /o/.test.bind(/o/);
console.log( func("hello") );