以下打字稿中的代码段不符合我的意思。它应该是不言自明的:
declare interface Date {
toUrlString(): string;
}
Date.prototype.toUrlString = () => {
return this.toISOString().substring(0, 10);
};
document.write(
new Date().toUrlString()
// Error: Object [object Window] has no method 'toISOString'
);
编译代码是:
var _this = this;
Date.prototype.toUrlString = function () {
return _this.toISOString().substring(0, 10);
};
document.write(new Date().toUrlString());
我该如何解决这个问题?
答案 0 :(得分:5)
=>
'胖箭头'表示法调用词法作用域规则。如果您不想要,请使用传统功能:
Date.prototype.toUrlString = function() {
return this.toISOString().substring(0, 10);
};