var Member(firstName,lastName){
this.firstName=firstName;
this.lastName=lastName;
this.getName()=function(){
return this.lastName+' '+this.firstName;
}
};var Member =function (firstName,lastName){
this.firstName=firstName;
this.lastName=lastName;
}
Member.prototype.getName=function(){
return this.lastName+''+this.firstName;
}
var mem=new Member('John','Kim');
console.log(mem.getName());var Member= function (){};
Member.prototype.sex='남자';
var mem1=new Member();
var mem2=new Member();
console.log(mem1.sex+''+mem2.sex); //결과: 남자 남자
mem2.sex='여자';
console.log(mem1.sex+''+mem2.sex); //결과: 남자 여자delete mem1.sex;
delete mem2.sex;
console.log(mem1.sex+''+mem2.sex); //결과: 남자 남자
var Member=function(firstName,lastName){
this.firstName=firstName;
this.lastName=lastName;
};
Member.prototype={
getName:funtion(){
return this.lastName+''+this.firstName;
}
toString:function(){
return this.lastName+this.firstName;
}var Animal=function(){};
Animal.prototype={
walk: function(){
console.log('종종');
}
};
var Dog=function(){
Animal.call(this);
};
Dog.prototype=new Animal();
Dog.prototype.bark=function(){
console.log('멍');
}
var d =new Dog();
d.walk();
d.bark();var Animal=function(){};
Animal.prototype={
walk: function(){
console.log('종종');
}
};
var SuperAnimal=function(){};
SuperAnimal.prototype={
walk:function(){
console.log(' 다다');
}
};
var Dog=function(){};
Dog.prototype=new Animal()l
var d1=new Dog();
d1.walk();var Animal=function(){};
var Hamster=function(){};
Hamster.prototype=new Animal();
var a=new Animal();
var h=new Hmaster();
console.log(a.constructor===Animal);//true
console.log(h.construnctor===Animal);//true
console.log(h.constructor===Hamster);//false 2.instanceof 연산자 console.log(Hamster.prototype.isPrototypeOf(h));
console.log(Animal.prototype.isPrototypeOf(h)); 3.isPrototypeOf 메소드var obj={hoge:function(){}, foo:function(){}};
console.log('hoge' in obj);//true
console.log('piyo' in obj);//falseprivate 멤버는 생성자 함수에서 정의한다.
privileged 메소드를 정의해 private 멤버에 액세스하기.
function Triangle(){
//private property
var _base;
var _height;
//private 메소드 정의
var _checkArgs=function(base){
return (typeof val==='number'&&val>0);
}
//private 멤버에 엑세스하기 위한 메소드 정의
this.setBase=function(base){
if(_checkArgs(base){base= _base;}
}
this.getBase=function(){return _base;}
this.setHeight=function(height){
if(_checkArgs)){_height=height;}
}
this.getHeight=function(){return _height;}
}
function Triangle(){
var _base;
var _height;
Object.defineProperty(
this,
'base',
{
get:function(){
return base;};
set: function(base){
if(typeof base==number && base>0))
_base=base;
}
};
}
}
}
var Wings=Wings||{}; //wing 네임스페이스를 정의한 것임
Wings.Member=function(firstName,lastName){
this.firstName=firstName;
this.LastName=lastName;};
Wings.Member.prototype={
getName:function(){
return this.lasName+''+this.firstName;
}
};function namespace(ns){
var anems=ns.split('.');
var parent =window;
for( var i=0,len=names.length;i<len;i++){
parent[names[i]]=parent[names[i]]||{};
parent=parent[names[i]];
}
return parent;
}class Member{
constructor(firstName, lastName){
this.firstName=firstName;
this.lastName=lastNamel
}
getName(){
return firstName;
}
}
let m =new Member('kimmm','kim');
get firstName(){
return this._firstName;
}
static getTriangle (base,height){
return base*height/2;
}
}
let member={
name:'아무개',
birth:new Date(1980,5,5,);
to String(){
return this.name;
}
};let name='아무무';
let birth=new Date(1990,10,20);
let member={name,birth};
//memeber 출력시 {name:"아무무", birth: October 20 1990 00:00:00ES2015 부터 비로소 모듈이 지원이 되기 시작했다.
다음과 같이 정의한다.
import {Member, Area} from './lib/Util';
var m =new Member('무무','아');
console.log(m.getName());
default 의 export 가져오기
export default class{
static getTriangle(base,height){
return base*height/2;
}
}
```
let data_Ary=['o','t','t2'];
let itr=data_ary[Symbol.iterator]();
let d;
while(d=itr.next()){
if (d.done) {break;}
console.log(d.done);
console.log(d.value);
}
```function* myGenerator(){
yield '가나',
yield '다라',
yield '마바';
}
for( let t of myGenerator()){
console.log(t);
}let data={ red:'빨',yellow:'노'};
var proxy =new Proxy (data,{
get(target,prop){
return prop in target? target[prop]:'?';
}
});
console.log(proxy.red);//빨
console.log(proxy.yellow);//노