2014-07-13 3 views
3

내 프로그래밍 경험은 주로 PHP, JavaScript 및 약간의 Python을 사용합니다. 나는 "의존성 주입"이라는 용어를 꽤 많이 던져 보았고 몇 가지 검색을했지만 아직도 약간 혼란 스럽습니다.JavaScript/Knockout.js의 의존성 삽입

public SomeClass (MyClass myObject) { 
    this.myObject = myObject; 
} 

나 '.... This는 높은 평가를 포스트 것 같다,하지만, 난 여전히 만족하지 않다 (그 중 하나 또는 그냥 희망 해요) 허용 게시물을 사용하는 예는

knockout.js를 조금 사용했고 객체 값을 설정하는 비슷한 시나리오를 발견했습니다. ReservationsViewModel에서 SeatReservation 함수로 인수를 전달하여 객체를 종속성 삽입으로 간주 할 수 있습니까? 나는 내가 궁금해하는 두 줄에 대해 논평했다.

function SeatReservation(name, initialMeal) { 
    var self = this; 
    self.name = name; 
    self.meal = ko.observable(initialMeal); 

    self.formattedPrice = ko.computed(function() { 
     var price = self.meal().price; 
     return price ? "$" + price.toFixed(2) : "None";   
    });  
} 


function ReservationsViewModel() { 
    var self = this; 

    self.availableMeals = [ 
     { mealName: "Standard (sandwich)", price: 0 }, 
     { mealName: "Premium (lobster)", price: 34.95 }, 
     { mealName: "Ultimate (whole zebra)", price: 290 } 
    ];  

    self.seats = ko.observableArray([ 
     //dependency injection????? 
     new SeatReservation("Steve", self.availableMeals[0]), 
     new SeatReservation("Bert", self.availableMeals[0]) 
    ]); 

    self.totalSurcharge = ko.computed(function() { 
     var total = 0; 
     for (var i = 0; i < self.seats().length; i++) 
      total += self.seats()[i].meal().price; 
     return total; 
    });  

    self.addSeat = function() { 
     //dependency injection????? 
     self.seats.push(new SeatReservation("", self.availableMeals[0])); 
    } 
} 

는 "새로운 SeatReservation"개체의 데이터를 설정하는 SeatReservation 기능에 인수를 전달할 때이 의존성 주입을 고려가요?

종속성 주입이 아닌 경우 이러한 객체를 설정하는 방법에 대한 특정 용어가 있습니까?

답변

3

아니오, 사실 DI 제어의 반전이 필요합니다, 당신은 더 정확한 것

function ReservationsViewModel(seatReservation) { 
    ... 
    self.seats = ko.observableArray([  
     new seatReservation("Steve", self.availableMeals[0]), 
     new seatReservation("Bert", self.availableMeals[0]) 
    ]); 
} 

을하고있는 ReservationsViewModel

에서 SeatReservation 유형을 주입한다. 또한 의존성을 주입하는 AMD를 사용한다

+0

seatReservation을 ReservationsViewModel에 대한 인수로 전달하는 기능은 무엇입니까? SeatReservation의 함수 호출에서 인수가 될까요? – user3476345

+0

질문에서 처음 정의한 것은'SeatReservation' 함수입니다. – Anders

+0

왜 'AMD'를 사용해야합니까? 'require.js'를 의미합니까? – hellboy

0

겠습니까 객체를 설정하는 SeatReservation 함수에 ReservationsViewModel에서 인수를 전달하는 의존성 주입 고려?

는 "새로운 SeatReservation" 오브젝트의 데이터를 설정하는 SeatReservation 함수 인수를 전달 때 의존성 주입 간주?

번호

가 주입 종속성 아니에요 경우, 이러한 개체가 설정되고있는 방법에 대한 특정 용어가있다?

JavaScript의 자세한 내용은 instantiating a class입니다. 이 경우 SeatReservation은 2 개의 인수가 필요한 "생성자"가있는 클래스입니다.