私は少しのjavascriptライブラリを書いています:私はItem
オブジェクトを定義してからItem.prototype.addNumber
の関数を追加しました。そして最後に私はそれを列挙できないものとして設定しました。ログを取ろうとすると、for...in
ループを使用して関数が表示されます。 これは私のコードです。間違っていますか?あなたがItem.prototype
に代わりのItem
のプロパティを定義しているjavascriptプロパティはまだfor ...によって見つかった
function Item() {
...
}
Item.prototype.addString= function() {
...
}
Object.defineProperty(Item, "addString", { enumerable: false });
デフォルトではfalseではありませんか?私の答えで見積もりを見てください。そして私はMDNの記事 '* .prototype'を全く見ていませんでした。 – gdoron
@gdoron: 'Item.prototype.addString = func ...'はデフォルトで列挙可能ですので、 'Object.defineProperty'を使用して列挙可能な設定を行います。 'Item.prototype.addString'プロパティが' defineProperty'を使用して最初に*作成されていた場合、yes、それは列挙できませんでした。 –
ohhhだから、代わりにこれを使うことができます: 'Object.defineProperty(Item.prototype、" addString "、{});' **?** – gdoron