我正在尝试使用 java 对 xpl 语言进行词法分析并发现
String.prototype.tokenize = tokenize;
但无法弄清楚这行代码是做什么的!
我正在尝试使用 java 对 xpl 语言进行词法分析并发现
String.prototype.tokenize = tokenize;
但无法弄清楚这行代码是做什么的!
它在对象中的覆盖/创建tokenize
方法。String
例如,现在字符串将具有方法tokenize
:
alert('hello world'.tokenize());
在MDN阅读有关原型的更多信息。
String.prototype.tokenize = tokenize
意思是:将方法添加tokenize
到对象prototype
的。String
这称为扩充或扩展原型。
假设tokenize
看起来像这样:
function tokenize(someToken){
return this.replace(RegExp('%0','g'),someToken || '');
}
现在String.prototype.tokenize = tokenize
可以这样使用:
var str = 'hello %0'.tokenize('world'); //=> 'hello world'
//or
var str = String.protoptype.tokenize.call('hello %0','world'); //=> 'hello world'