const obj = {
num: 26,
a: function() {
console.log(this.num); // (1)
},
b: () => {
console.log(this.num); // (2)
},
c() {
console.log(this.num); // (3)
}
}
obj.a();
obj.b();
obj.c();
(1) :
(2) :
(3) :
const func1 = x => (x ** 2);
console.log(func1(2)); // (1)
const func2 = (a, b, c, ...rest) => rest.reduce((pre, cur) => pre + cur, b);
console.log(func2(1, 2, 3, 4, 5)); // (2)
const func3 = (a, b) => {a, b};
console.log(func3('A', 'B')); // (3)
const func4 = (x, y) => x + y;
console.log(func4(5, 5, 10)); // (4)
const func5 = (x, y, z) => z;
console.log(func5(5, 10)); // (5)
const func6 = (x, y) => {x + y;}
console.log(func6(10, 20)); // (6)
(1) :
(2) :
(3) :
(4) :
(5) :
(6) :
const obj = {
x: 1,
func() {
return this.x;
},
};
console.log(obj.func); // (1)
new obj.func(); // (2)
obj.func.hasOwnProperty("prototype"); // (3)
(1) :
(2) :
(3) :
(1): prototype νλ‘νΌν°κ° μκ³ , νλ‘ν νμ
λ μμ±νμ§ μλλ€.
(2): μ€λ³΅λ 맀κ°λ³μ μ΄λ¦μ μ μΈν΄λ μλ¬κ° λ°μνμ§ μλλ€.
(3): μ€μ½ν μ²΄μΈ μμμ κ°μ₯ κ°κΉμ΄ μμ ν¨μ μ€μμ νμ΄ν ν¨μκ° μλ ν¨μμ
`this`, `arguments`, `super`, `new.target`μ μ°Έμ‘°νλ€.
(1):
(2):
(3):
var obj = {
x : 10,
f : function () {return this.x}
};
console.log(obj.f()); //(1)
var bar = obj.f;
console.log(bar()); // (2)
console.log(new obj.f()); // (3)
class Obj2 {
constructor(){
}
f(){
return this;
}
}
const obj2 = new Obj2();
console.log(obj2.f()); //(4)
var bar2 = obj2.f;
console.log(bar2()); // (5)
console.log(new obj2.f()); // (6)
(1)
(2)
(3)
(4)
(5)
(6)
λ€μμ μΆλ ₯ κ²°κ³Όλ₯Ό μμ±νμΈμ.
const base = {
name : 'Lee',
sayHi(){
return `Hi ${this.name}`;
}
};
const derived = {
__proto__ : base,
sayHi(){
return `${super.sayHi()}!`;
},
sayHi2 : function(){
return `${super.sayHi()}!`;
}
}
console.log(derived.sayHi()); //(1)
console.log(derived.sayHi2()); //(2)
(1)
(2)
const obj = {
f4: function (name) {
this.name = name;
},
f5(name) {
this.name = name;
},
f6: (name) => {
this.name = name;
},
};
console.log(obj.f4.hasOwnProperty("prototype")); // 1
console.log(obj.f5.hasOwnProperty("prototype")); // 2
console.log(obj.f6.hasOwnProperty("prototype")); // 3
const objCopy1 = new obj.f4("ha");
const objCopy2 = new obj.f5("haha");
const objCopy3 = new obj.f6("hahaha");
console.log(objCopy1.name); // 4
console.log(objCopy2.name); // 5
console.log(objCopy3.name); // 6
1 :
2 :
3 :
4 :
5 :
6 :
function f1(num, ...rest) {
console.log(num, ...rest); // 1
console.log(arguments[0]); // 2
}
const f2 = function (num, ...rest) {
console.log(num, rest); // 3
console.log(arguments[0]); // 4
};
const obj = {
f3(num, ...rest) {
console.log(num, rest); // 5
console.log(arguments[0]); // 6
},
};
const f4 = (num, ...rest) => {
console.log(num, rest[0]); // 7
console.log(arguments[0]); // 8
};
f1(1, 2, 3, 4);
f2(5, 6, 7, 8);
obj.f3(13, 14, 15, 16);
f4(9, 10, 11, 12);
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :