Knockout.js で計算されたオブザーバブル関数を使用する 2 つの方法を比較しています
質問:
- 関数内の「this」キーワードは、その親オブジェクトを参照できますか (関数内ではなく、外部)?
最後にコンテキスト値を入れなくてもバージョン 2 が機能するのはなぜですか?
///Version 1 my.Product = function () { this.id = ko.observable(); this.salePrice = ko.observable(); this.photo = ko.observable(); this.shortDescription = ko.observable(); this.photoUrl = ko.computed (function () { return photoPath + this.photo(); },this); //**context** }; ////version 2 my.Product = function () { var self = this; self.id = ko.observable(); self.salePrice = ko.observable(); self.photo = ko.observable(); self.shortDescription = ko.observable(); self.photoUrl = ko.computed(function () { return photoPath + self.photo(); });//why there is no "self" here };