バインドを使用せずにどのクラスにいるのかを知る必要がある場合、この場合の横方向の解決策。バインド以外の約束の文脈解決のための他のソリューション
function Customer() {}
Customer.prototype.say = function() {
console.log("I'm " + this.constructor.TYPE);
};
Customer.TYPE = 'customer';
function Product() {}
Product.prototype.say = function() {
console.log("I'm " + this.constructor.TYPE);
};
Product.TYPE = 'product';
var customer = new Customer();
var product = new Product();
//cleaner interface
Promise.resolve()
.then(customer.say) //I'm undefined
.then(product.say) //I'm undefined
//works but looking for a solution using cleaner interface like above
//any lateral thinking
Promise.resolve()
.then(customer.say.bind(customer)) //I'm customer
.then(product.say.bind(product)) //I'm product
私は非バインドベースのソリューション、横向きの思考に基づいたアイデアをお探しですか?
私はSDKを開発していますので、よりクリーンなインターフェイスを提供し、クライアントに使用したいと考えています。
あなたは 'bind' aまたは無名関数のどちらかを使用しなければなりません。あなたが期待しているものが何であるかわかりません... – elclanrs
より洗練された構文を維持しながら呼び出し元の型を知る方法はありますか? – user2727195
* "グローバルスコープで呼び出されました" *いいえ、スコープとは関係のないグローバルオブジェクト(厳密モードでは 'undefined')を参照する' this'で呼び出されます。 –