問題タブ [hasownproperty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - myObj.hasOwnProperty(prop)の代わりにObject.prototype.hasOwnProperty.call(myObj、prop)を使用するのはなぜですか?
私が正しく理解していれば、JavaScriptのすべてのオブジェクトはObjectプロトタイプから継承します。つまり、JavaScriptのすべてのオブジェクトは、プロトタイプチェーンを介してhasOwnProperty関数にアクセスできます。
RequireJSのソースコードを読んでいるときに、この関数に出くわしました。
hasOwn
への参照Object.prototype.hasOwnProperty
です。この関数を次のように書くことに実際的な違いはありますか?
そして、私たちはそれに取り組んでいるので、なぜこの関数を定義するのですか?(わずかな)パフォーマンス向上のためのプロパティアクセスのショートカットとローカルキャッシュの問題ですか、それともこのメソッドを持たないオブジェクトでhasOwnPropertyが使用される可能性があるケースを見逃していますか?
javascript - Javascript配列。高度
私は次のような私のphpスクリプトからのJSON文字列を持っています:
AXXXXXXXX要素の数とそれに含まれる要素の数がわかりません。A要素を取得するには、以下のコードを使用します。
これで、A要素の長さがわかりました
ここで、Aの要素の最大長を知る必要があります。
チャートのこの出力配列を取得するにはどうすればよいですか?
ありがとう!
javascript - 単純な`continue`ステートメントは、for..inループの本体全体を` if`にネストする代わりに受け入れられますか?
通常、for..in
悪名高い警告の解決策は、次のようなものです。
私はそれがただするほうがきれいだと思います:
問題は...それらは機能的に同一ではありませんか?
javascript - IE9: hasOwnProperty トリックが機能しない?
IE のネイティブ DOM 要素には hasOwnProperty() メソッドが含まれていないことは十分に文書化されています。これにはいくつかの解決策があります。最も洗練されたものは、次のように、Object.prototype で hasOwnProperty() メソッドに直接アクセスすることです。
これはIE9では機能しなくなったようです。誰か説明できますか?これを説明するフィドルを次に示します。
互換モードをオフにして標準モードで IE9 を使用すると、アラートが表示されます。
ただし、互換モードまたは互換モードをオンにした後 (または開発者ツールを使用して IE8 および IE7 エンジンを使用してページをレンダリングした後) に、アラートが表示されます。
ここで何か他のことが機能していますか、それとも hasOwnProperty のこの回避策は使用できなくなりましたか?
javascript - オブジェクト自身のプロパティのみを反復処理するjQueryの方法はありますか?
私は小さなjQueryのようなライブラリを作成していますが、奇妙なことに、の動作が1つあり$.each
ます。
javascriptにはfor...in
ループがあります:
これに伴う問題は、継承されたプロパティ、つまりオブジェクトコンストラクタのプロトタイプからのプロパティも繰り返されることです。
hasOwnProperty
たとえば、これを使用してこれを知ることができます。そして、jQueryはそれを行うことができます。
ただし、オブジェクトをに渡すと、オブジェクトはとまったく同じよう$.each
に動作し、継承されたプロパティも繰り返し処理されます。また、わずかに遅くなるはずであり、入力するにはさらに数文字が必要です。for...in
このフィドルをチェックして実際の動作を確認し、ここでのソースコードを探してください$.each
。
だから私の質問は、独自のプロパティのみを含むjQueryのオブジェクト反復メソッドはありますか?そうでない場合、ライブラリはこのように動作する必要がありますか?
編集: jQueryはこれを行わないので、これが役立つかどうかも答えることができます。つまり、プロトタイプのプロパティを繰り返し処理したいと思っていることはわかりませんが、何かが足りないのかもしれません。
javascript - オブジェクトを「クリア」することは、hasOwnProperty の使用を回避する実行可能な方法ですか?
Object.prototype が変更されている可能性があるため、オブジェクトを完全に制御できる場合でも hasOwnProperty が必要な理由を理解しています。しかし、本当にそれを避けたい場合は、次のことを考慮してください。
つまり、使用する前にプロパティのインスタンスをクリアしています。これはうまくいくはずですか、それともいくつかのエッジケースがありませんか?
internet-explorer-9 - YUI 属性のデフォルト値を使用すると、Javascript Object.prototype.hasOwnProperty が IE9+ に対して誤った値を返す
hasOwnProperty javascript メソッドで IE9+ および/または YUI 3 のバグを発見したと思います。ここにいる誰かが以前にこの問題を見たことがあるかどうか、または問題をさらに特定できるかどうか疑問に思っています。この問題について関係者に知らせたいのですが、IE チームと YUI のどちらに連絡する必要があるかわかりません。
詳細:
IE9/IE10の場合:
- 標準モードでのレンダリング
- 初期化された YUI 属性が含まれます (サンプル コードの 11 行目)。
hasOwnProperty は、有効な JavaScript 識別子ではないキーを含むオブジェクトに対して誤った値を返します (ab の b は問題ありませんが、a.5 の 5 は無効です)。有効な識別子にはこの問題はありません。
コード例:
http://jsfiddle.net/bobbyakadizzy/nLZJy/6/ (この問題は IE9/IE10 でのみ発生することに注意してください)
実行new Y.IE9HasOwnPropertyTest(); GLOBAL_attributeWithNumericProperty.hasOwnProperty('1234');
すると、true を返すべきときに false が返されます。
jquery - jQuery Ajax に応答があるかどうかを確認する
jQuery Ajax 関数を使用して、WordPress テーマにいくつかのデモ データをインストールします。以下のこのスクリプトは、私が取り組んだ以前のテーマで機能しましたが、何らかの理由でエラーが発生しています
Uncaught TypeError: Cannot call method 'hasOwnProperty' of null
これが私が使用しているスクリプトです
どんな助けでも大歓迎です。