javascriptについてです。いつもお世話になっております。
Cube.prototype = new objectMethod();
function objectMethod(){
this.zSort=function (){
this.faces=this.faces.sort(function(a,b){
var az=0,bz=0;
for(var i=0;i<a.length;i++){
az+=【this】.vertices[a[i]].z;
az=az/a.length;
}
for(i=0;i<b.length;i++){
bz+=【this】.vertices[b[i]].z;
bz=bz/b.length;
}
return bz-az;
});
};
}
Cubeはfacesとverticesをプロパティに持つコンストラクタです。
これが上手く動作せず調べてみたところ、メソッド内の関数のthis(墨付き括弧で示したthis)はグローバルを指すことがわかりました。
何とかしてCubeのインスタンスを参照するようにしたいのですが、
どのようにすればいいのでしょうか。
みんなの回答 1 件
そもそも何でそのthisがCubeのインスタンスを指さないかは理解したんだよね?
解決法としては、thisを別の変数に入れておくか、sortに渡している関数をbindする
関連するトピックス