0:00:00.780,0:00:06.234 წინა გაკვეთილში ვისაუბრეთ[br]ობიექტის ტიპების შექმნაზე 0:00:06.234,0:00:09.234 და მათ ინიციალიზაციაზე კონსტრუქტორებით. 0:00:09.234,0:00:13.472 ობიექტის ტიპი არაა აუცილებელი[br]მხოლოდ თვისებებთან იყოს ასოცირებული 0:00:13.472,0:00:18.806 შესაძლოა ასევე მისი ფუნქციონალურობასთან[br]ასოცირება. შეხედე სამყაროს ობიექტის ტიპებს 0:00:18.806,0:00:26.287 მაგალითად, ჩვენ. გვაქვს სიმაღლე, ასაკი,[br]მაგრამ ასევე ვიძინებთ, ვჭამთ, კოდს ვწერთ. 0:00:26.287,0:00:30.939 გვინდა რომ ეს ფუნქციები[br]იმ ობიექტის ტიპებს შევუსაბამოთ. 0:00:30.939,0:00:35.949 ამ პროგრამაში, რომელსაც წინა[br]ვიდეოში ვაკეთებდით, გვქვს ფუნქცია 0:00:35.949,0:00:41.826 drawWinston, რომელსაც ორივე ვინსტონ[br]ობიექტზე ვიძახებთ. კარგი არ იქნებოდა, რომ 0:00:41.826,0:00:48.569 ეს პირდაპირ ვინსტონის ობიექტის ტიპს[br]მივაბათ? შეგვიძლია და მარტივია. 0:00:48.569,0:00:55.725 ჩვენს კონსტრუქტორს ქვემოთ,[br]დავწერთ Winston.prototype, 0:00:55.725,0:00:59.232 prototype ალბათ ახალი სიტყვაა[br]რომელიც ადრე არ გინახავთ. 0:00:59.232,0:01:05.881 prototype არის ობიექტის თვისება, რომელსაც[br]შეგვიძლია ფუნქციები მივუკავშიროთ 0:01:05.881,0:01:13.309 და ნებისმიერ მასზე დაფუძნებულ[br]ობიექტს ასევე ექნება ეს ფუნქციები. 0:01:13.309,0:01:21.052 შეგვიძლია დავწეროთ .prototype, შემდეგ[br]წერტილი და ფუნქციის სახელი, draw უდრის, 0:01:21.052,0:01:28.546 შემდეგ კი ავიღოთ ჩვენი[br]drawWinston კოდი და ჩავსვათ აქ. 0:01:28.546,0:01:35.311 ჩვენ ახლა დახატვის ფუნქცია[br]დავუკავშირეთ Winston-ის პროტოტიპს. 0:01:35.311,0:01:40.008 ეს იმას ნიშნავს, რომ Winston-ის ტიპის[br]ობიექტებზე draw()-ს გამოძახება შეგვეძლება. 0:01:40.008,0:01:45.411 ესეიგი winstonTeen-ზე ან winstonAdult-ზე[br]draw()-ს გამოძახება უნდა შეგვეძლოს. 0:01:45.411,0:01:49.569 ასეთ ფუნქციას, რომელიც[br]შეგვიძლია ობიექტზე გამოვიძახოთ, 0:01:49.569,0:01:54.833 ვუწოდებთ "მეთოდს", ამიტომ ამიერიდან[br]ალბათ მეთოდს უფრო ხშირად ვიტყვი. 0:01:54.833,0:01:58.272 ესეიგი, ეს არის draw მეთოდი. 0:01:58.272,0:02:04.103 ახლა ამას წავშლით და ვნახოთ[br]შევძლებთ თუ არა draw()-ს გამოძახებას. 0:02:04.103,0:02:07.069 winstonTeen.draw() 0:02:07.069,0:02:13.697 კარგი, შეცდომა გვაქვს, გვეუბნება[br]რომ winsObject არ არის განმარტებული. 0:02:13.697,0:02:20.530 კარგი, აქამდე არგუმენტს drawWinston-ს[br]გადავცემდით, რომელიც Winston ობიექტი იყო 0:02:20.530,0:02:26.462 ახლა კი ამას აღარ ვაკეთებთ.[br]შეგვიძლია შევცვალოთ გადასაცემად 0:02:26.462,0:02:30.819 და შემდეგ.. აქ რა უნდა გადავცეთ?[br]უნდა გადავცეთ winstonTeen. 0:02:30.819,0:02:38.441 იმუშავა, მაგრამ სასაცილო ჩანს.[br]ობიექტზე draw-ს ისედაც ვიძახებ. 0:02:38.441,0:02:43.965 არაა აუცილებელი[br]ობიექტის გადაცემაც, გამეორებაა. 0:02:43.965,0:02:48.465 ესეიგი ეს არ უნდა გავაკეთოთ,[br]ამიტომ წავშალოთ აქედან. 0:02:48.465,0:02:54.404 თუ ობიექტში ვართ, რა შეგვიძლია გამოვიყენოთ[br]რომ დავუკავშირდეთ ობიექტის თვისებებს? 0:02:54.404,0:03:00.374 შესაძლოა კონსტრუქტორს შეხედოთ და გაიხსენოთ[br]სპეციალური სიტყვა "this" და იფიქროთ: 0:03:00.374,0:03:08.573 "იქნებ ამის მაგივრად "this" დავწერო!"[br]შევცვალოთ winsObject და დავწეროთ "this". 0:03:08.573,0:03:12.951 ეს იმიტომ, რომ ახლა ობიექტში ვართ.[br]ფუნქცია ობიექტზეა გამოძახებული, 0:03:12.951,0:03:16.861 ამიტომ "this" მიმდინარე ობიექტს შეეხება. 0:03:16.861,0:03:23.271 ესეიგი, შეგიძლია დაწერო "this" და მიიღო[br]წვდომა მიმდინარე ობიექტის თვისებებზე. 0:03:23.271,0:03:26.720 მუშაობს, ხედავ? მაგარია, არა? 0:03:26.720,0:03:31.907 ესეიგი, ახლა შეგვიძლია[br]დავწეროთ winstonAdult.draw() 0:03:31.907,0:03:38.271 წვდომა გვაქვს winstonAdult-ის თვისებებზე,[br]რადგან ფუნქცია ამ ობიექტზეა გამოძახებული. 0:03:38.271,0:03:45.752 ეს არის "this"-ის ძალიან კარგი თვისება,[br]მიუხედავად იმისა ,რომ ზოგჯერ დამაბნეველია. 0:03:45.752,0:03:52.028 კარგი, გავერთეთ. ახლა კიდევ ერთი მეთოდი[br]დავუმატოთ. კიდევ რა გააკეთოს ვინსტონმა? 0:03:52.028,0:04:01.078 მოდი, ვალაპარაკოთ. Winston.prototype.talk[br]რომ შეგვეძლოს ბევრი ფუნქციის მიკავშირება. 0:04:01.078,0:04:05.241 ვათქმევინოთ "მე ვარ ვინსტონი!" 0:04:05.241,0:04:13.181 შემდეგ დავწერთ this.x+20 და this.y + 150. 0:04:13.181,0:04:19.734 არაფერი მომხდარა, მაგრამ ეს იმიტომ,[br]რომ ჯერ ეს ფუნქცია არ გამომიძახებია. 0:04:19.734,0:04:25.068 ახლა teen ვალაპარაკოთ, winstonTeen.talk() 0:04:25.068,0:04:30.479 მე ვარ ვინსტონი,[br]ესეც ასე! და winstonAdult.talk() 0:04:30.479,0:04:36.828 კარგი, ახლა გვაქვს ვინსტონის ობიექტის[br]ტიპი რომელსაც აქვს თვისებები: მეტსახელი, 0:04:36.828,0:04:41.406 ასაკი, x, y; ასევე,[br]ფუნქციონალურობა: ქცევა, მეთოდები; 0:04:41.406,0:04:45.026 რომლებიც თვისებების მიხედვით განსხვავდება. 0:04:45.026,0:04:48.359 და შეგვიძლია გამოვიყენოთ winston-ის[br]იმდენი შემთხვევა, რამდენიც გვინდა 0:04:48.359,0:04:50.999 და მათზე გამოვიძახოთ ეს ნებისმიერი მეთოდი. 0:04:50.999,0:04:53.460 მაგარია, არა?