最初のコンストラクターは formatLength フィールドを作成しません。存在しないフィールドを取得しようとするだけです。
2 番目のコンストラクターは formatLength フィールドを作成します。
@lighty フィールドを undefined に設定しても意味がありません。js では、C# のようにフィールドを null にすることができます。undefined は、オブジェクトに存在しないフィールドを参照しようとした場合に取得する「値」です。
var o = {};
var u = o.youField; // u is set to undefined;
undefined は、オブジェクトがこのフィールドを定義していないことを意味します。
あなたはそれを書くことができます:
var o = { yourField : undefined};
しかし、私はこれを見たことがありません。あなたはこれを書くべきです:
var o = { yourField : null};
したがって、初期値 (null も含む) を持つ un フィールドが必要な場合は、次のように記述します。
var Class = function data() {
var self = this;
self.formatLength = null;
}
var c = new Class();
このフィールドを削除する場合は、次のように delete を呼び出します。
delete c.formatLength;
お役に立てば幸いです。