いただきました。このような関数の定義の利点:obj = { func: function(){return function func(){return this.something;};}() }
Anvantage自己の呼び出し機能
ストーリー: 私はどのように軸を中心に一定の角度でThree.jsのVector3を回転させる方法を探していました。これを見つけました: How to rotate a Three.js Vector3 around an axis? 私はこの機能がどのように機能し、それを調べているかに興味がありました:https://github.com/mrdoob/three.js/blob/master/src/math/Vector3.js。関数は次のようになります。
applyAxisAngle: function() {
var quaternion;
return function applyAxisAngle(axis, angle) {
if (quaternion === undefined) quaternion = new Quaternion();
return this.applyQuaternion(quaternion.setFromAxisAngle(axis, angle));
};
}(),
このように関数を定義する理由は何でしょうか?
「d」と「n」の位置を考慮すると、「利点」はいくつかのタイプミスです。 – Rajesh
利点は「クォータニオン」を隠すことです。 'applyAxisAngle'はそれを使うことができますが、他の人は使用できません。 – Maxx