SlideShare a Scribd company logo
Object-Oriented JavaScript
!
!
JavaScript OOP Pattern
JavaScript OOP Pattern
!
JavaScript OOP Pattern
JavaScript OOP Pattern
!
var oName = {name : “javascript”, getName : function() {return this.name}};!
var oName2 = {name : “c#”, getName : function() {return this.name}};!
var oName3 = {name : “original”, getName : function() {return this.name}};!
!
!
var oName = {name : “javascript”, getName : function() {return this.name}};!
var oName2 = {name : “c#”, getName : function() {return this.name}};!
var oName3 = {name : “original”, getName : function() {return this.name}};!
!
function Name(name) {!
this.name = name;

this.getName = function() {!
return this.name;!
};

this.setName = function(newName) {!
this.name = newName;!
};!
}!
!
!
var obj = new Name("javascript");!
obj.getName();!
!
var obj = new Name(“C#”);!
obj.getName();
function Name(name) {!
this.name = name;

this.getName = function() {!
return this.name;!
};

this.setName = function(newName) {!
this.name = newName;!
};!
}!
!
!
var obj = new Name("javascript");!
obj.getName();!
!
var obj2 = new Name(“C#”);!
obj2.getName();!
!
obj.getName === obj2.getName; //false
function Name(name) {!
this.name = name;!
}!
!
Name.prototype.getName = function() {!
return this.name;!
};

Name.prototype.setName = function(newName) {!
this.name = newName;!
};!
!
!
!
var obj = new Name("javascript");!
obj.getName();!
!
var obj2 = new Name(“C#”);!
obj2.getName();!
function Name(name) {!
this.name = name;!
}!
!
Name.prototype.getName = function() {!
return this.name;!
};

Name.prototype.setName = function(newName) {!
this.name = newName;!
};!
!
!
!
var obj = new Name("javascript");!
obj.getName();!
!
var obj2 = new Name(“C#”);!
obj2.getName();!
obj.getName === obj2.getName; //true
function Name(name) {!
this.name = name;!
}!
!
Name.prototype.getName = function() {!
return this.name;!
};

Name.prototype.setName = function(newName) {!
this.name = newName;!
};!
!
!
!
var obj = new Name("javascript");!
debugger;!
obj.getName();!
!
var obj2 = new Name("C#");!
obj2.getName();!
function Name(name) {!
this.name = name;!
}!
!
Name.prototype.getName = function() {!
return this.name;!
};

Name.prototype.setName = function(newName) {!
this.name = newName;!
};!
!
!
!
var obj = new Name("javascript");!
debugger;!
obj.getName();!
!
var obj2 = new Name("C#");!
obj2.getName();!
function Name(name) {!
this.name = name;!
}!
!
Name.prototype.getName = function() {!
return this.name;!
};

Name.prototype.setName = function(newName) {!
this.name = newName;!
};!
!
!
!
var obj = new Name("javascript");!
debugger;!
obj.getName();!
!
var obj2 = new Name("C#");!
obj2.getName();!
obj.__proto__
function Name(name) {!
this.name = name;!
}!
!
Name.prototype.getName = function() {!
return this.name;!
};

Name.prototype.setName = function(newName) {!
this.name = newName;!
};!
!
!
!
var obj = new Name("javascript");!
debugger;!
obj.getName();!
!
var obj2 = new Name("C#");!
obj2.getName();!
obj.__proto__ == Name.prototype
?
function Name(name) {!
this.name = name;!
}!
!
Name.prototype.getName = function() {!
return this.name;!
};

Name.prototype.setName = function(newName) {!
this.name = newName;!
};!
!
!
!
var obj = new Name("javascript");!
debugger;!
obj.getName();!
!
var obj2 = new Name("C#");!
obj2.getName();!
obj.constructor === Name

//true
function Name(name) {!
this.name = name;!
}!
!
Name.prototype.getName = function() {!
return this.name;!
};

Name.prototype.setName = function(newName) {!
this.name = newName;!
};!
!
!
!
var obj = new Name("javascript");!
debugger;!
obj.getName();!
!
var obj2 = new Name("C#");!
obj2.getName();!
obj instanceof Name 

//true
function Name(name) {!
this.name = name;!
}!
!
Name.prototype.getName = function() {!
return this.name;!
};

Name.prototype.setName = function(newName) {!
this.name = newName;!
};!
!
!
!
var obj = new Name("javascript");!
debugger;!
obj.getName();!
!
var obj2 = new Name("C#");!
obj2.getName();!
obj instanceof Name 

//true
!
obj instanceof Object
//true.
// 상속받은 생성자도 true로 나옴
var nameModel = {};!
!
!
var nameController = {!


getName : function() {!
return this.name;!
},!
setName : function(newName) {!
this.name = newName;!
}!
}!
!
!
nameController.setName.call(nameModel,"javascript");!
nameController.getName.call(nameModel);!
var nameModel = {};!
!
var nameController = {!


getName : function() {!
return this.name;!
},!
setName : function(newName) {!
this.name = newName;!
}!
}!
!
nameController.setName.call(nameModel,"javascript");!
nameController.getName.call(nameModel);!
!
var nameModel2 = {};!
nameController.setName.call(nameModel2, "java");!
nameController.getName.call(nameModel2);
JavaScript OOP Pattern
!
JavaScript OOP Pattern
Ad

Recommended

Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
 
Security Challenges in Node.js
Security Challenges in Node.js
Websecurify
 
NoSQL Injections in Node.js - The case of MongoDB
NoSQL Injections in Node.js - The case of MongoDB
Sqreen
 
JavaScript Sprachraum
JavaScript Sprachraum
patricklee
 
Ruby on Rails Intro
Ruby on Rails Intro
zhang tao
 
Asynchronous programming patterns in Perl
Asynchronous programming patterns in Perl
deepfountainconsulting
 
Avoiding callback hell in Node js using promises
Avoiding callback hell in Node js using promises
Ankit Agarwal
 
Loadrunner
Loadrunner
danwrong
 
Boot strap.groovy
Boot strap.groovy
Vijay Shukla
 
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
Tsuyoshi Yamamoto
 
Jasmine - why JS tests don't smell fishy
Jasmine - why JS tests don't smell fishy
Igor Napierala
 
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
Tsuyoshi Yamamoto
 
Lessons Learnt in 2009
Lessons Learnt in 2009
pratiknaik
 
Lies, Damn Lies, and Benchmarks
Lies, Damn Lies, and Benchmarks
Workhorse Computing
 
Testing Javascript with Jasmine
Testing Javascript with Jasmine
Tim Tyrrell
 
Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6
Visual Engineering
 
Containers & Dependency in Ember.js
Containers & Dependency in Ember.js
Matthew Beale
 
Javascript Frameworks for Joomla
Javascript Frameworks for Joomla
Luke Summerfield
 
Extracting ruby gem
Extracting ruby gem
Yura Tolstik
 
Developing JavaScript Widgets
Developing JavaScript Widgets
Konstantin Käfer
 
Perl web frameworks
Perl web frameworks
diego_k
 
Webrtc mojo
Webrtc mojo
bpmedley
 
Asynchronous programming done right - Node.js
Asynchronous programming done right - Node.js
Piotr Pelczar
 
Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)
xSawyer
 
Any event intro
Any event intro
qiang
 
Mojo as a_client
Mojo as a_client
Marcus Ramberg
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClient
Adam Wiggins
 
JavaScript Promise
JavaScript Promise
Joseph Chiang
 
[WEB UI BASIC] Javascript 2탄
[WEB UI BASIC] Javascript 2탄
Jae Woo Woo
 
자바카페 스터디- INSIDE JS 1-3
자바카페 스터디- INSIDE JS 1-3
Jin-Hyun Park
 

More Related Content

What's hot (20)

Boot strap.groovy
Boot strap.groovy
Vijay Shukla
 
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
Tsuyoshi Yamamoto
 
Jasmine - why JS tests don't smell fishy
Jasmine - why JS tests don't smell fishy
Igor Napierala
 
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
Tsuyoshi Yamamoto
 
Lessons Learnt in 2009
Lessons Learnt in 2009
pratiknaik
 
Lies, Damn Lies, and Benchmarks
Lies, Damn Lies, and Benchmarks
Workhorse Computing
 
Testing Javascript with Jasmine
Testing Javascript with Jasmine
Tim Tyrrell
 
Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6
Visual Engineering
 
Containers & Dependency in Ember.js
Containers & Dependency in Ember.js
Matthew Beale
 
Javascript Frameworks for Joomla
Javascript Frameworks for Joomla
Luke Summerfield
 
Extracting ruby gem
Extracting ruby gem
Yura Tolstik
 
Developing JavaScript Widgets
Developing JavaScript Widgets
Konstantin Käfer
 
Perl web frameworks
Perl web frameworks
diego_k
 
Webrtc mojo
Webrtc mojo
bpmedley
 
Asynchronous programming done right - Node.js
Asynchronous programming done right - Node.js
Piotr Pelczar
 
Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)
xSawyer
 
Any event intro
Any event intro
qiang
 
Mojo as a_client
Mojo as a_client
Marcus Ramberg
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClient
Adam Wiggins
 
JavaScript Promise
JavaScript Promise
Joseph Chiang
 
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
Tsuyoshi Yamamoto
 
Jasmine - why JS tests don't smell fishy
Jasmine - why JS tests don't smell fishy
Igor Napierala
 
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
Tsuyoshi Yamamoto
 
Lessons Learnt in 2009
Lessons Learnt in 2009
pratiknaik
 
Testing Javascript with Jasmine
Testing Javascript with Jasmine
Tim Tyrrell
 
Containers & Dependency in Ember.js
Containers & Dependency in Ember.js
Matthew Beale
 
Javascript Frameworks for Joomla
Javascript Frameworks for Joomla
Luke Summerfield
 
Extracting ruby gem
Extracting ruby gem
Yura Tolstik
 
Developing JavaScript Widgets
Developing JavaScript Widgets
Konstantin Käfer
 
Perl web frameworks
Perl web frameworks
diego_k
 
Webrtc mojo
Webrtc mojo
bpmedley
 
Asynchronous programming done right - Node.js
Asynchronous programming done right - Node.js
Piotr Pelczar
 
Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)
xSawyer
 
Any event intro
Any event intro
qiang
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClient
Adam Wiggins
 

Viewers also liked (20)

[WEB UI BASIC] Javascript 2탄
[WEB UI BASIC] Javascript 2탄
Jae Woo Woo
 
자바카페 스터디- INSIDE JS 1-3
자바카페 스터디- INSIDE JS 1-3
Jin-Hyun Park
 
WEBUI Advanced중간시험
WEBUI Advanced중간시험
지수 윤
 
9주 dom & event advanced
9주 dom & event advanced
지수 윤
 
160716 클리어보스 발표자료 '내 인생의 첫 번째 스타트업'
160716 클리어보스 발표자료 '내 인생의 첫 번째 스타트업'
재원 변
 
7주 JavaScript 실습
7주 JavaScript 실습
지수 윤
 
재사용가능한 서비스코드제작
재사용가능한 서비스코드제작
지수 윤
 
자바스크립트 핵심 가이드
자바스크립트 핵심 가이드
재원 변
 
퍼블리셔, 디자인을 퍼블리싱하다
퍼블리셔, 디자인을 퍼블리싱하다
jeong seok yang
 
명세부터 깨우치는 FILEAPI
명세부터 깨우치는 FILEAPI
우영 주
 
앱밤_시간표
앱밤_시간표
재원 변
 
Javascript Closure
Javascript Closure
지수 윤
 
JavaScript Debugging (동영상강의자료)
JavaScript Debugging (동영상강의자료)
지수 윤
 
JS특징(scope,this,closure)
JS특징(scope,this,closure)
지수 윤
 
비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료
지수 윤
 
웹 소프트웨어 시대의 새로운 롤(role) 모델, 자바스크립트
웹 소프트웨어 시대의 새로운 롤(role) 모델, 자바스크립트
Rhio Kim
 
크로스브라우징
크로스브라우징
지수 윤
 
7주 JavaScript Part2
7주 JavaScript Part2
지수 윤
 
4주 CSS Layout
4주 CSS Layout
지수 윤
 
8주 dom & event basic
8주 dom & event basic
지수 윤
 
[WEB UI BASIC] Javascript 2탄
[WEB UI BASIC] Javascript 2탄
Jae Woo Woo
 
자바카페 스터디- INSIDE JS 1-3
자바카페 스터디- INSIDE JS 1-3
Jin-Hyun Park
 
WEBUI Advanced중간시험
WEBUI Advanced중간시험
지수 윤
 
9주 dom & event advanced
9주 dom & event advanced
지수 윤
 
160716 클리어보스 발표자료 '내 인생의 첫 번째 스타트업'
160716 클리어보스 발표자료 '내 인생의 첫 번째 스타트업'
재원 변
 
7주 JavaScript 실습
7주 JavaScript 실습
지수 윤
 
재사용가능한 서비스코드제작
재사용가능한 서비스코드제작
지수 윤
 
자바스크립트 핵심 가이드
자바스크립트 핵심 가이드
재원 변
 
퍼블리셔, 디자인을 퍼블리싱하다
퍼블리셔, 디자인을 퍼블리싱하다
jeong seok yang
 
명세부터 깨우치는 FILEAPI
명세부터 깨우치는 FILEAPI
우영 주
 
앱밤_시간표
앱밤_시간표
재원 변
 
Javascript Closure
Javascript Closure
지수 윤
 
JavaScript Debugging (동영상강의자료)
JavaScript Debugging (동영상강의자료)
지수 윤
 
JS특징(scope,this,closure)
JS특징(scope,this,closure)
지수 윤
 
비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료
지수 윤
 
웹 소프트웨어 시대의 새로운 롤(role) 모델, 자바스크립트
웹 소프트웨어 시대의 새로운 롤(role) 모델, 자바스크립트
Rhio Kim
 
크로스브라우징
크로스브라우징
지수 윤
 
7주 JavaScript Part2
7주 JavaScript Part2
지수 윤
 
4주 CSS Layout
4주 CSS Layout
지수 윤
 
8주 dom & event basic
8주 dom & event basic
지수 윤
 
Ad

Similar to JavaScript OOP Pattern (20)

Plugin jQuery, Design Patterns
Plugin jQuery, Design Patterns
Robert Casanova
 
JavaScript 1.5 to 2.0 (TomTom)
JavaScript 1.5 to 2.0 (TomTom)
jeresig
 
JavaScript for PHP developers
JavaScript for PHP developers
Stoyan Stefanov
 
Java script object model
Java script object model
James Hsieh
 
Javascript
Javascript
Aditya Gaur
 
Es.next
Es.next
Ignacio Gil
 
Javascript3
Javascript3
mozks
 
Javascript - The Good, the Bad and the Ugly
Javascript - The Good, the Bad and the Ugly
Thorsten Suckow-Homberg
 
manager
manager
phuong Ho
 
04 Advanced Javascript
04 Advanced Javascript
crgwbr
 
F[4]
F[4]
percy briones velasques
 
JavaScript - Chapter 7 - Advanced Functions
JavaScript - Chapter 7 - Advanced Functions
WebStackAcademy
 
Ian 20150116 java script oop
Ian 20150116 java script oop
LearningTech
 
Jsphp 110312161301-phpapp02
Jsphp 110312161301-phpapp02
Seri Moth
 
F(1)
F(1)
claudia veneros
 
Journey of a C# developer into Javascript
Journey of a C# developer into Javascript
Massimo Franciosa
 
The Beauty Of Java Script V5a
The Beauty Of Java Script V5a
rajivmordani
 
OO in JavaScript
OO in JavaScript
Gunjan Kumar
 
[A 3]Javascript oop for xpages developers - public
[A 3]Javascript oop for xpages developers - public
Kazunori Tatsuki
 
"Javascript" por Tiago Rodrigues
"Javascript" por Tiago Rodrigues
Núcleo de Electrónica e Informática da Universidade do Algarve
 
Ad

More from 지수 윤 (19)

HTML,CSS Next
HTML,CSS Next
지수 윤
 
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
지수 윤
 
Clean Front-End Development
Clean Front-End Development
지수 윤
 
개발자를 알아보자.
개발자를 알아보자.
지수 윤
 
재사용UI 컴포넌트설계
재사용UI 컴포넌트설계
지수 윤
 
Front-End 개발의 괜찮은 선택 ES6 & React
Front-End 개발의 괜찮은 선택 ES6 & React
지수 윤
 
WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기
지수 윤
 
JavaScript Debugging (수업자료)
JavaScript Debugging (수업자료)
지수 윤
 
CSS Layout
CSS Layout
지수 윤
 
더 나은 SW프로젝트를 위해
더 나은 SW프로젝트를 위해
지수 윤
 
9주 DOM & Event Advanced
9주 DOM & Event Advanced
지수 윤
 
7주 JavaScript Part1
7주 JavaScript Part1
지수 윤
 
6주 javaScript 시작하며
6주 javaScript 시작하며
지수 윤
 
10주 ajax 실습
10주 ajax 실습
지수 윤
 
8주 dom & event basic 실습
8주 dom & event basic 실습
지수 윤
 
9주 dom & event advanced 실습
9주 dom & event advanced 실습
지수 윤
 
5주 모바일웹과 반응형웹
5주 모바일웹과 반응형웹
지수 윤
 
3주 CSS Basic
3주 CSS Basic
지수 윤
 
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
지수 윤
 
Clean Front-End Development
Clean Front-End Development
지수 윤
 
개발자를 알아보자.
개발자를 알아보자.
지수 윤
 
재사용UI 컴포넌트설계
재사용UI 컴포넌트설계
지수 윤
 
Front-End 개발의 괜찮은 선택 ES6 & React
Front-End 개발의 괜찮은 선택 ES6 & React
지수 윤
 
WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기
지수 윤
 
JavaScript Debugging (수업자료)
JavaScript Debugging (수업자료)
지수 윤
 
더 나은 SW프로젝트를 위해
더 나은 SW프로젝트를 위해
지수 윤
 
9주 DOM & Event Advanced
9주 DOM & Event Advanced
지수 윤
 
7주 JavaScript Part1
7주 JavaScript Part1
지수 윤
 
6주 javaScript 시작하며
6주 javaScript 시작하며
지수 윤
 
10주 ajax 실습
10주 ajax 실습
지수 윤
 
8주 dom & event basic 실습
8주 dom & event basic 실습
지수 윤
 
9주 dom & event advanced 실습
9주 dom & event advanced 실습
지수 윤
 
5주 모바일웹과 반응형웹
5주 모바일웹과 반응형웹
지수 윤
 
3주 CSS Basic
3주 CSS Basic
지수 윤
 

Recently uploaded (20)

Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Varsha Nayak
 
How Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines Operations
Insurance Tech Services
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
AI-Powered Compliance Solutions for Global Regulations | Certivo
AI-Powered Compliance Solutions for Global Regulations | Certivo
certivoai
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Natan Silnitsky
 
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
Aarno Aukia
 
Step by step guide to install Flutter and Dart
Step by step guide to install Flutter and Dart
S Pranav (Deepu)
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
wAIred_RabobankIgniteSession_12062025.pptx
wAIred_RabobankIgniteSession_12062025.pptx
SimonedeGijt
 
Who will create the languages of the future?
Who will create the languages of the future?
Jordi Cabot
 
Wondershare PDFelement Pro 11.4.20.3548 Crack Free Download
Wondershare PDFelement Pro 11.4.20.3548 Crack Free Download
Puppy jhon
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
Software Testing & it’s types (DevOps)
Software Testing & it’s types (DevOps)
S Pranav (Deepu)
 
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
alexandernoetzold
 
FME as an Orchestration Tool - Peak of Data & AI 2025
FME as an Orchestration Tool - Peak of Data & AI 2025
Safe Software
 
Integrating Survey123 and R&H Data Using FME
Integrating Survey123 and R&H Data Using FME
Safe Software
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Varsha Nayak
 
How Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines Operations
Insurance Tech Services
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
AI-Powered Compliance Solutions for Global Regulations | Certivo
AI-Powered Compliance Solutions for Global Regulations | Certivo
certivoai
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Natan Silnitsky
 
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
Aarno Aukia
 
Step by step guide to install Flutter and Dart
Step by step guide to install Flutter and Dart
S Pranav (Deepu)
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
wAIred_RabobankIgniteSession_12062025.pptx
wAIred_RabobankIgniteSession_12062025.pptx
SimonedeGijt
 
Who will create the languages of the future?
Who will create the languages of the future?
Jordi Cabot
 
Wondershare PDFelement Pro 11.4.20.3548 Crack Free Download
Wondershare PDFelement Pro 11.4.20.3548 Crack Free Download
Puppy jhon
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
Software Testing & it’s types (DevOps)
Software Testing & it’s types (DevOps)
S Pranav (Deepu)
 
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
alexandernoetzold
 
FME as an Orchestration Tool - Peak of Data & AI 2025
FME as an Orchestration Tool - Peak of Data & AI 2025
Safe Software
 
Integrating Survey123 and R&H Data Using FME
Integrating Survey123 and R&H Data Using FME
Safe Software
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 

JavaScript OOP Pattern

  • 2. !
  • 3. !
  • 6. !
  • 9. ! var oName = {name : “javascript”, getName : function() {return this.name}};! var oName2 = {name : “c#”, getName : function() {return this.name}};! var oName3 = {name : “original”, getName : function() {return this.name}};! !
  • 10. ! var oName = {name : “javascript”, getName : function() {return this.name}};! var oName2 = {name : “c#”, getName : function() {return this.name}};! var oName3 = {name : “original”, getName : function() {return this.name}};! !
  • 11. function Name(name) {! this.name = name;
 this.getName = function() {! return this.name;! };
 this.setName = function(newName) {! this.name = newName;! };! }! ! ! var obj = new Name("javascript");! obj.getName();! ! var obj = new Name(“C#”);! obj.getName();
  • 12. function Name(name) {! this.name = name;
 this.getName = function() {! return this.name;! };
 this.setName = function(newName) {! this.name = newName;! };! }! ! ! var obj = new Name("javascript");! obj.getName();! ! var obj2 = new Name(“C#”);! obj2.getName();! ! obj.getName === obj2.getName; //false
  • 13. function Name(name) {! this.name = name;! }! ! Name.prototype.getName = function() {! return this.name;! };
 Name.prototype.setName = function(newName) {! this.name = newName;! };! ! ! ! var obj = new Name("javascript");! obj.getName();! ! var obj2 = new Name(“C#”);! obj2.getName();!
  • 14. function Name(name) {! this.name = name;! }! ! Name.prototype.getName = function() {! return this.name;! };
 Name.prototype.setName = function(newName) {! this.name = newName;! };! ! ! ! var obj = new Name("javascript");! obj.getName();! ! var obj2 = new Name(“C#”);! obj2.getName();! obj.getName === obj2.getName; //true
  • 15. function Name(name) {! this.name = name;! }! ! Name.prototype.getName = function() {! return this.name;! };
 Name.prototype.setName = function(newName) {! this.name = newName;! };! ! ! ! var obj = new Name("javascript");! debugger;! obj.getName();! ! var obj2 = new Name("C#");! obj2.getName();!
  • 16. function Name(name) {! this.name = name;! }! ! Name.prototype.getName = function() {! return this.name;! };
 Name.prototype.setName = function(newName) {! this.name = newName;! };! ! ! ! var obj = new Name("javascript");! debugger;! obj.getName();! ! var obj2 = new Name("C#");! obj2.getName();!
  • 17. function Name(name) {! this.name = name;! }! ! Name.prototype.getName = function() {! return this.name;! };
 Name.prototype.setName = function(newName) {! this.name = newName;! };! ! ! ! var obj = new Name("javascript");! debugger;! obj.getName();! ! var obj2 = new Name("C#");! obj2.getName();! obj.__proto__
  • 18. function Name(name) {! this.name = name;! }! ! Name.prototype.getName = function() {! return this.name;! };
 Name.prototype.setName = function(newName) {! this.name = newName;! };! ! ! ! var obj = new Name("javascript");! debugger;! obj.getName();! ! var obj2 = new Name("C#");! obj2.getName();! obj.__proto__ == Name.prototype ?
  • 19. function Name(name) {! this.name = name;! }! ! Name.prototype.getName = function() {! return this.name;! };
 Name.prototype.setName = function(newName) {! this.name = newName;! };! ! ! ! var obj = new Name("javascript");! debugger;! obj.getName();! ! var obj2 = new Name("C#");! obj2.getName();! obj.constructor === Name
 //true
  • 20. function Name(name) {! this.name = name;! }! ! Name.prototype.getName = function() {! return this.name;! };
 Name.prototype.setName = function(newName) {! this.name = newName;! };! ! ! ! var obj = new Name("javascript");! debugger;! obj.getName();! ! var obj2 = new Name("C#");! obj2.getName();! obj instanceof Name 
 //true
  • 21. function Name(name) {! this.name = name;! }! ! Name.prototype.getName = function() {! return this.name;! };
 Name.prototype.setName = function(newName) {! this.name = newName;! };! ! ! ! var obj = new Name("javascript");! debugger;! obj.getName();! ! var obj2 = new Name("C#");! obj2.getName();! obj instanceof Name 
 //true ! obj instanceof Object //true. // 상속받은 생성자도 true로 나옴
  • 22. var nameModel = {};! ! ! var nameController = {! 
 getName : function() {! return this.name;! },! setName : function(newName) {! this.name = newName;! }! }! ! ! nameController.setName.call(nameModel,"javascript");! nameController.getName.call(nameModel);!
  • 23. var nameModel = {};! ! var nameController = {! 
 getName : function() {! return this.name;! },! setName : function(newName) {! this.name = newName;! }! }! ! nameController.setName.call(nameModel,"javascript");! nameController.getName.call(nameModel);! ! var nameModel2 = {};! nameController.setName.call(nameModel2, "java");! nameController.getName.call(nameModel2);
  • 25. !