JavaScriptのDate型を拡張するために以下のコードを使用すると、this
キーワードが正しく参照されていないため、私は「これは」タイプの「オブジェクトウィンドウ」であることがわかりデバッグするときにこれは私が使用してい活字体コードですTypeScriptを使用してJS Dateを拡張しましたが、「this」キーワードが正しく機能していません
Uncaught TypeError: _this.getTime is not a function
を::
declare interface Date {
stdTimezoneOffset:() => number;
dst:() => boolean;
addHours: (h: number) => void;
test:() => void;
}
Date.prototype.stdTimezoneOffset =() => {
var jan = new Date(this.getFullYear(), 0, 1);
var jul = new Date(this.getFullYear(), 6, 1);
return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
};
Date.prototype.dst =() => {
return this.getTimezoneOffset() < this.stdTimezoneOffset();
};
Date.prototype.addHours = (h: number) => {
this.setTime(this.getTime() + (h * 60 * 60 * 1000));
};
私が手にエラーがある
addHours
関数を呼び出します
と作成された.jsファイルはこれです:
var _this = this;
Date.prototype.stdTimezoneOffset = function() {
var jan = new Date(_this.getFullYear(), 0, 1);
var jul = new Date(_this.getFullYear(), 6, 1);
return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
};
Date.prototype.dst = function() {
return _this.getTimezoneOffset() < _this.stdTimezoneOffset();
};
Date.prototype.addHours = function (h) {
_this.setTime(_this.getTime() + (h * 60 * 60 * 1000));
};
Date.prototype.test = function() {
return +_this.getTime();
};
今では私には思われる問題が.JSファイルの最初の行です:
var _this = this;
しかし、私はしないでくださいそれを修正する方法を知っている。
問題への答えがここにありますhttp://stackoverflow.com/a/32330345/545230 – kazandzhiro
[TypeScriptのネイティブJavaScript番号オブジェクトを拡張する]の可能な複製(http://stackoverflow.com/questions/32330098/extend-native-javascript-number- object-in-typescript) –