2015-01-27 6 views
0

필자가 함수 컨텍스트를 설정하는 다양한 방법을 설명하는 튜토리얼을 작성하고 있습니다. 한 가지 방법은 변수 self = this을 선언하고 다른 하나는 함수의 두 번째 인수 (예 : ko.computed(function)(){...}, my.vm))로 객체를 전달하는 것입니다. 나는 그러나, 나는 왜 그가 다음 함수의 두 번째 인수로 this을 통과으로 혼동하고,이 두 개념을 이해 :Knockoutjs - 함수 컨텍스트 설정

 $(function(){ 
      var photoPath = "/images/"; 

      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); 
      }; 
     }); 

여기 사람이 나에게 설명해 주시겠습니까? 고맙습니다.

답변

0

관찰 가능한 computed()의 두 번째 매개 변수는 관찰 가능 항목의 "소유자"입니다. 즉, 값이 계산되면 접근 자 함수에서 this으로 사용됩니다.

예컨대,

var a = { foo: 1 }; 
var b = { foo: 2 }; 
ko.computed(function() { return this.foo; }, a); // 1 
ko.computed(function() { return this.foo; }, b); // 2 
+0

감사합니다, @Jeff 메르 카도. 주인이 정해지고있는 것 같습니다. 그러나 소유자가 이미'my.Product' 모델 객체에 설정되어 있지 않습니까? 'ko.computed' 함수에서'this'가 모델 객체와 다른 이유는 무엇입니까? – Chris22