MUstar

Javascript ES6 Example - Classes

Jul 27th, 2018
82
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //ES6 Classess
  2.  
  3. //Prototype
  4. var nemo = class Rectangle {
  5.     constructor(width,height){
  6.         this.width = width;
  7.         this.height = height;
  8.     }
  9.     getResult(){
  10.         return this.calculate();
  11.     }
  12.     calculate(){
  13.         return this.height * this.width;
  14.     }
  15. };
  16.  
  17. var calcnemo = new nemo(5,5);
  18. document.write('Result : ' + calcnemo.getResult() + '<br/>'); // 25
  19.  
  20. //static
  21. class Point {
  22.     constructor(x,y){
  23.         this.x = x;
  24.         this.y = y;
  25.     }
  26.     static distance(a,b){
  27.         const dx = a.x - b.x;
  28.         const dy = a.y - b.y;
  29.         return dx * dx + dy * dy;
  30.     }
  31. }
  32.  
  33. const p1 = new Point(5,8);
  34. const p2 = new Point(8,5);
  35. document.write('Point : ' + Point.distance(p1,p2) + '<br/>'); // 18
  36.  
  37. //extends _ sub classing
  38. class pre {
  39.     constructor(){
  40.         this.jsword = "자바스크립트";
  41.         this.webword = "웹";
  42.         this.five = 5;
  43.     }
  44.     word(){
  45.         return "Hello World!";
  46.     }
  47.     getjsword(){
  48.         return this.jsword;
  49.     }
  50.  
  51. };
  52.  
  53. var Test = class TestClass extends pre{
  54.     word(){
  55.         return "Hello World!";
  56.     }
  57.     plus_five(num){
  58.         return this.five + num;
  59.     }
  60. };
  61.  
  62. var varpre = new pre();
  63. document.write(varpre.jsword  + '<br/>'); //자바스크립트
  64. document.write(varpre.getjsword()  + '<br/>'); //자바스크립트
  65. document.write(varpre.word()  + '<br/>'); //Hello World!
  66.  
  67.  
  68. var varTest = new Test();
  69. document.write(varTest.word() + '<br/>'); //Hello World!
  70. // document.write(varTestClass.word() + '<br/>'); // is not defined
  71. document.write(varTest.plus_five(10)  + '<br/>'); // 15
  72.  
  73. function food (name){
  74.     this.name = name;
  75. }
  76.  
  77. food.prototype.flavor = function (){
  78.     document.write(this.name + '는 달콤하다.<br/>');
  79. };
  80.  
  81. class chocolate extends food {
  82. }
  83.  
  84. class ramen extends food{
  85.     flavor(){
  86.         document.write(this.name + '라면은 맛있다.<br/>');
  87.     }
  88. }
  89.  
  90. class milk extends food{
  91.     flavor(){
  92.         super.flavor();
  93.         document.write(this.name + '는 완벽한 에너지드링크!<br/>');
  94.     }
  95. }
  96.  
  97. var ramen_talk = new ramen('치킨');
  98. ramen_talk.flavor(); //치킨라면은 맛있다.
  99.  
  100. var choco_talk = new chocolate('밀크초코');
  101. choco_talk.flavor(); //밀크초코는 달콤하다.
  102.  
  103. var milk_talk = new milk('더 진한 커피우유');
  104. milk_talk.flavor();//더 진한 커피우유는 달콤하다.
  105.                    //더 진한 커피우유는 완벽한 에너지드링크!
  106.  
  107.  
  108. //Mix-ins
  109.  
  110. //=> arrow function
  111. var calculatorMixin = Base => class extends Base {
  112.     calc() {}
  113. };
  114.  
  115. var ramdomizerMixin = Base => class extends Base{
  116.     randomize(){}
  117. };
  118.  
  119. class Foo {};
  120. class Bar extends calculatorMixin(ramdomizerMixin(Foo)){};
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×