私は最近three.jsプロジェクトを再構成しました。すべてのオブジェクトが全く同じジオメトリとマテリアルでレンダリングされているように見える問題が発生しました。私は、デバッガでこのコンストラクタに問題を追跡:Object.definePropertyはコンストラクタで何もしません
function Geometry() {
Object.defineProperty(this, 'id', { value: GeometryIdCount() });
this.uuid = exports.Math.generateUUID();
...
ChromeはObject.defineProperty
後this
オブジェクトにはプロパティを示していない、と物事は後でそれを使用しようとするとid
はundefined
として戻ってきます。しかし、私がthree.jsを使用して作成した古いプロジェクトをデバッグすると、id
は呼び出し後にデバッガのthis
に定義されます。
Object.defineProperty
は何も起こらない原因は何ですか?私がnode.js require
を使用してJavascriptから3つのES6 import
をTSコンパイラでTypescriptから呼び出すようにしたのですが、なぜこのコンストラクタにこの効果があるのかはわかりません。
私は 'GeometryIdCount'を踏んで、有効な整数を返しているようです。私は実際にあなたが書いたものにコードを変更しました、そして、それは動作します。それで3Jソースを変更する必要があるので、私が更新すればそれをやり直さなければならず、それは謎を解決しません。 – BMac