Advertisement
avr39ripe

jsPointConstructorBased

Mar 11th, 2021
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Study</title>
  6. </head>
  7. <body>
  8.     <div id="output"></div>
  9.     <script>
  10.         'use strict'
  11.  
  12.         function makeTime(h=0, m=0, s=0) {
  13.             let tmObj = { hour: h, minute: m, second: s };
  14.             let tmFunctions = {
  15.                 format: function () {
  16.                     let tmStr = {};
  17.                     for (let key in tmObj) {
  18.                         tmStr[key] = (tmObj[key] < 9 ? '0' : '') + tmObj[key];
  19.                     }
  20.                     return `${tmStr.hour}:${tmStr.minute}:${tmStr.second}`;
  21.                 },
  22.                 print: function (printer = (str) => console.log(str)) {
  23.                     printer(tmFunctions.format(tmObj));
  24.                     return tmFunctions;
  25.                 },
  26.                 correct: function () {
  27.                     const secInMin = 60;
  28.                     const minInHour = 60;
  29.                     const hourInDay = 24;
  30.  
  31.                     if (tmObj.second >= secInMin) {
  32.                         tmObj.minute += Math.floor(tmObj.second / secInMin);
  33.                         tmObj.second %= secInMin;
  34.                     }
  35.  
  36.                     if (tmObj.minute >= minInHour) {
  37.                         tmObj.hour += Math.floor(tmObj.minute / minInHour);
  38.                         tmObj.minute %= minInHour;
  39.                     }
  40.  
  41.                     if (tmObj.hour >= hourInDay) {
  42.                         tmObj.hour %= hourInDay;
  43.                     }
  44.                     return tmFunctions;
  45.                 },
  46.                 add: function (addTmObj) {
  47.                     for (let key in tmObj) {
  48.                         tmObj[key] += addTmObj[key];
  49.                     }
  50.                     return tmFunctions.correct();
  51.                 },
  52.                 addSeconds: function (seconds) {
  53.                     return tmFunctions.add({ hour: 0, minute: 0, second: seconds });
  54.                 },
  55.                 addMinutes: function (minutes) {
  56.                     return tmFunctions.add({ hour: 0, minute: minutes, second: 0 });
  57.                 },
  58.                 addHours: function (hours) {
  59.                     return tmFunctions.add({ hour: hours, minute: 0, second: 0 });
  60.                 }
  61.             };
  62.  
  63.             return tmFunctions;
  64.  
  65.         }
  66.  
  67.  
  68.         //function makePoint(pX = 0, pY = 0) {
  69.         //    let x = pX;
  70.         //    let y = pY;
  71.  
  72.         //    let funObj = {
  73.         //        setX(pX) { x = pX; },
  74.         //        setY(pY) { y = pY; },
  75.         //        getX() { return x; },
  76.         //        getY() { return y; },
  77.         //        print() { console.log(`(${x},${y})`); }
  78.         //    };
  79.  
  80.         //    return funObj;
  81.         //}
  82.  
  83.         //function makePoint(pX = 0, pY = 0) {
  84.         //    let pointObj = { x: pX, y: pY };
  85.  
  86.         //    let funObj = {
  87.         //        setX(pX) {
  88.         //            if (pX >= 0) { pointObj.x = pX; return true }; return false; },
  89.         //        setY(pY) {
  90.         //            if (pY >= 0) { pointObj.y = pY; return true; }; return false; },
  91.         //        getX() { return pointObj.x; },
  92.         //        getY() { return pointObj.y; },
  93.         //        print() { console.log(`(${pointObj.x},${pointObj.y})`); }
  94.         //    };
  95.  
  96.         //    return funObj;
  97.         //}
  98.  
  99.        
  100.  
  101.         {
  102.             //let p1 = { x: 21, y: 22};
  103.             //let p2 = { px: 211, yp: 212 };
  104.  
  105.             //function print() { console.log(`(${this.x},${this.y})`); }
  106.             //function getX() { return this.x; };
  107.             //function getY() { return this.y; };
  108.  
  109.             //function setX(pX) {
  110.             //    if (pX >= 0) {
  111.             //        this.x = pX;
  112.             //        return true;
  113.             //    };
  114.             //    return false;
  115.             //}
  116.  
  117.             //function setY(pY) {
  118.             //    if (pY >= 0) {
  119.             //        this.y = pY;
  120.             //        return true;
  121.             //    };
  122.             //    return false;
  123.             //}
  124.  
  125.             //p1.print = print;
  126.             //p1.getX = getX;
  127.             //p1.getY = getY;
  128.             //p1.setX = setX
  129.             //p1.setY = setY
  130.  
  131.  
  132.             //p2.print = print;
  133.             //p2.getX = getX;
  134.             //p2.getY = getY;
  135.             //p2.setX = setX
  136.             //p2.setY = setY
  137.  
  138.             function Point(pX, pY) {
  139.                 // let this = {};
  140.                 this.x = pX;
  141.                 this.y = pY;
  142.  
  143.                 this.print = function (){ console.log(`(${this.x},${this.y})`); }
  144.                 this.getX = function () { return this.x; };
  145.                 this.getY = function () { return this.y; };
  146.                 this.setX = function(pX) {
  147.                     if (pX >= 0) {
  148.                         this.x = pX;
  149.                         return true;
  150.                     };
  151.                     return false;
  152.                 }
  153.                 this.setY = function (pY) {
  154.                     if (pY >= 0) {
  155.                         this.y = pY;
  156.                         return true;
  157.                     };
  158.                     return false;
  159.                 }
  160.                 // return this;
  161.             }
  162.  
  163.             let p1 = new Point(21, 22);
  164.            /// p1.x = -123545;
  165.             let p2 = new Point(211, 212);
  166.             let p3 = new Point(26, 7);
  167.  
  168.             p1.print();
  169.             p1.setX(42);
  170.             p2.print();
  171.             p2.setY(33);
  172.  
  173.             p1.print();
  174.             p2.print();
  175.  
  176.             console.log(p1);
  177.             console.log(p2);
  178.             //let p1 = makePoint(1,2);
  179.             //p1.print();
  180.  
  181.             //let p2 = makePoint(11,12);
  182.             //p2.print();
  183.  
  184.             //p1.setX(-10);
  185.             //p1.setY(20);
  186.             //p1.print();
  187.  
  188.  
  189.  
  190.             //let time1 = makeTime(9, 48, 26);
  191.             //let time2 = makeTime(11, 26, 7);
  192.  
  193.             //time1.print();
  194.             //time1.add({ hour: 12, minute: 67, second: 23 }).print();
  195.             //time1.addMinutes(67).print();
  196.             //time2.print().addHours(20).print();
  197.  
  198.             //// printer implementation for HTML output
  199.             //let printerHTML = function (str) {
  200.             //    output.innerHTML += `<li>${str}</li>`
  201.             //}
  202.  
  203.             //// printer implementation for alert output
  204.             //let printerAlert = function (str) {
  205.             //    alert(str);
  206.             //}
  207.  
  208.             //let printer; // Leave printer uninitializet,so undefined for default console.log output
  209.             //// or uncomment on of next line
  210.             //printer = printerHTML;
  211.             ////printer = printerAlert;
  212.  
  213.             //let time1 = { hour: 22, minute: 33, second: 44 };
  214.             //let time2 = { hour: 1, minute: 2, second: 3 };
  215.             //let time3 = { hour: 12, minute: 26, second: 7 };
  216.  
  217.             //printTime(time1, printer);
  218.             //printTime(time2, printer);
  219.             //printTime(time3, printer);
  220.  
  221.             //printTime(correctTime({ hour: 12, minute: 67, second: 23 }), printer);
  222.             //printTime(correctTime({ hour: 23, minute: 59, second: 61 }), printer);
  223.  
  224.             //printTime(
  225.             //    addHours(printTime(correctTime({ hour: 23, minute: 59, second: 61 }), printer), 2)
  226.             //    , printer
  227.             //);
  228.  
  229.             //printTime(addMinutes({ hour: 23, minute: 59, second: 61 }, 26), printer);
  230.  
  231.             //printTime(addHours({ hour: 23, minute: 59, second: 61 }, 7), printer);
  232.         }
  233.  
  234.  
  235.        
  236.     </script>
  237. </body>
  238. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement