საკუთარი ობიექტისათვის მეთოდის (ების) შექმნა – JS

წარმოვიდგინოთ რომ დამკვეთმა კომპანიამ, რომელიც მოღვაწეობს ტურიზმის სფეროში, შეგვიკვეთა კალკულატორი. რომელშიც მიუთითებს:

  • ადამიანების რაოდენობას
  • თუ რამდენი დღით სურთ დასვენება
  • ქვეყანას სადაც სურთ დასვენება ამ ადამიანებს

ხოლო კალკულატორი გამოთვლის ჯამურ თანხას და დაბეჭდავს ეკრანზე

ამისათვის ჩვენ უნდა შევქმნათ ობიექტი სახელით summerTour (სახელს არ აქვს მნიშვნელობა, შესაძლებელია იყოს თქვენს მიერ შერჩეული ნებისმიერი, იმიტომ რომ ეს ობიექტის სახელია) და ჩამოვუყალიბოთ ამ ობიექტს თვისებები, სადაც შევინახავთ, ქვეყნის დასახელებას და ფასს ერთ ადამიანზე:

საკუთარი ობიექტისათვის მეთოდის (ების) შექმნა - JS

ეხლა კი შევქმნათ მეთოდი ობიექტისათვის summerTour, როგორ იქმნება ის:

პირველი უნდა დავწეროთ ობიექტის სახელი და წერტილი

summerTour.

შემდეგ უნდა მოვიფიქროთ ამ ობიექტის მეთოდის სახელი, ჩვენს შემთხვევაში მას დავარქვათ calc

summerTour.calc

რადგან ნებისმიერი მეთოდი არის (ტოლია, ნიშნავს) რაღაც (ნებისმიერ) ქმედებას,

და რადგან მეთოდი ქმედებაა, ე.ი. ის შეძლება ითქვას არის ფუქნციაც, ამიტომ:

summerTour.calc = function

შენიშვნა: ფუნქციის შემდეგ, ფუნქციის სახელი აღარ არის საჭირო იმიტომ რომ, სახელი ჩვენ უნვე ობიექტისათვის შექმნილ მეთოდს დავარქვით (calc)

შემდეგ კი როგორც ჩვეულებრივი ფუნქციისათვის ვწერთ, დავალებისათვის საჭირო პარამეტრებს, ჩვენს შემთხვევაში 3 პარამეტრს, ესენია:

peoples = ადამიანი (ადამიანები) – თუ რამდენ ადამიანს სურს დასასვენებლად წასვლა

days = დღე (დღეები) – თუ რამდენი დღით სურთ წასვლა

country = ქვეყანა – რომელ ქვეყანაში სურთ წასვლა

კოდი გამოიყურება უკვე შემდეგნაირად:

summerTour.calc = function (peoples, days, country) {

}

ამის შემდეგ კი საჭიროა ფუნქციაში მოვათავსოთ, თუ რა ქმედებას ასრულებს ეს მეთოდი, ქმედების შესრულების შემდეგ, მეთოდმა, იგივე ფუნქციამ უნდა დაგვიბრუნოს შედეგი:

summerTour.calc = function (peoples, days, country) {
var result = peoples * days * summerTour[country];
};

ანუ: peoples გამრავლებული days გამრავლებული summerTour[country];

თუ რატომ summerTour[country], გადახედეთ გაკვეთილს:

საკუთარი ობიექტის თვისების დაბეჭდვა ეკრანზე, როცა თვისება შენახულია სხვა დამოუკიდებელ ცვლადში – JS

თუ როგორ იმუშავებს summerTour[counrty]:
საკუთარი ობიექტისათვის მეთოდის (ების) შექმნა - JS

 

აღსანიშნავია რომ შეიძლება დავწეროთ შემდეგნაირად:

summerTour.calc = function (peoples, days, country) {
var result = peoples * days * this[country];
};

ანუ:

summerTour[country]; -ის ნაცვლად: this[country];

რატომ this ?

this ნიშნავს – “ეს”

ანუ ისევ ეს ობიექტი რომელთანაც ჩვენ ეხლა ვმუშაობთ, ანუ ჩვენს შემთხვევაში: this -> summerTour

 

საბოლოოდ კი, წარმოვიდგინოთ რომ ტურისტულ სააგენტოში მივიდა 2 ადამიანი, მათ სურთ 4 დღით წასვლა თურქეთში და აინტერესებთ ეს რამდელი ლარი დაუჯდებათ

ჩვენს მიერ შექმნილი კალკულატორის საშუალებით, გამოვთვალოთ ჯამური თანხა:

საკუთარი ობიექტისათვის მეთოდის (ების) შექმნა - JS

შედეგი:

საკუთარი ობიექტისათვის მეთოდის (ების) შექმნა - JS

http://jsfiddle.net/wholehat/QfgnF/

summerTour.calc(2, 4, “turkey“) – ანუ 2 ადამიანი, 4 დღით, თურქეთში.

 

იგივე მაგალითი this -ის გამოყენებით:

საკუთარი ობიექტისათვის მეთოდის (ების) შექმნა - JS

შედეგი:

საკუთარი ობიექტისათვის მეთოდის (ების) შექმნა - JS

http://jsfiddle.net/wholehat/w9Y64/

Advertisements

კომენტარის დატოვება

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / შეცვლა )

Twitter picture

You are commenting using your Twitter account. Log Out / შეცვლა )

Facebook photo

You are commenting using your Facebook account. Log Out / შეცვლა )

Google+ photo

You are commenting using your Google+ account. Log Out / შეცვლა )

Connecting to %s