function Hero(name) { 
  this.name = name;
  this.occupation = 'Ninja';
  this.whoAreYou = function() {   
    return "Jestem " + 
           this.name + 
           ", a moja specjalizacja to " + 
           this.occupation;
  };
}

---

let a = 1
let b = 2
let val = {a: a, b: b}
console.log(val)

---

var obj = {
  prop: 1,
  modifier: function() {
    console.log(this.prop);
  }
}

---

var obj = {
  prop: 1,
  modifier () {
    console.log(this.prop);
  }
}

---

let vehicle = "car"
function vehicleType(){
  return "truck"
}
let car = {
  [vehicle+"_model"]: "Ford"
}
let truck= {
  [vehicleType() + "_model"]: "Mercedes"
}
console.log(car)   
console.log(truck) 

---

var config = {
  server: 'localhost',
  port: '8080'
}
var server = config.server;
var port = config.port;

---

let config = {
  server: 'localhost',
  port: '8080',
  timeout: 900,
}
let {server,port} = config
console.log(server, port)

---

let config = {
  server: 'localhost',
  port: '8080',
  timeout: 900,
}
let server='127.0.0.1';
let port ='80';
let timeout ='100';

function startServer(configValue){
  console.log(configValue)
}
startServer({server,port,timeout} = config)


---

function toArray(args) {
    var result = [];
    for (var i = 0, len = args.length; i < len; i++) {
        result.push(args[i]);
    }
    return result;
}
function doSomething() {
    var args = toArray(arguments);
    console.log(args)
}
doSomething("witaj", "świecie")


---

let arr = ['a','b','c']
for (const index of arr.keys()){
  console.log(index) // 0 1 2
}
for (const value of arr.values()){
  console.log(value) // a b c
}
for (const [index,value] of arr.entries()){
  console.log(index,value)
}

---

var some_obj = {
  name: 'Ninja',
  say: function(who){
    return 'Siema ' + who + ', jestem ' + this.name;
  }
};

---

var greeter = {
  default: "Witaj, ",
  greet: function (names){
    names.forEach(function(name) {
      console.log(this.default + name); // nie można odczytać właściwości 'default' wartości undefined
    })
  }
}
console.log(greeter.greet(['świecie', 'niebo']))

---

try {
  nieMaMnie();
} catch (e){
  alert(e.name + ': ' + e.message);
} finally {
  alert('Wreszcie!');
}

---

try {
  var total = mozeIstnieje();
  if (total === 0) { 
    throw new Error('Dzielenie przez zero!');
  } else {
    alert(50 / total);
  }
} catch (e){
  alert(e.name + ': ' + e.message);
} finally {
  alert('Wreszcie!');
}

---



