0

ES6 では、グローバル シンボルとローカル変数が競合しています。コードは次のとおりです。

var firstName = Symbol();
var lastName = Symbol();

class Person {

constructor(firstName, lastName){
    this[firstName] = firstName;
    this[lastName] = lastName;
    console.log(this[firstName] , this[lastName]);
}
greet(name){
    return "hello " + name + ", I am " + this[firstName];
}
}
var obj1 = new Person("john","Doe");
console.log(obj1.greet("khaled"));//outputs "hello khaled, I am undefined"

なぜこれが起こるのですか?バグですか?

4

0 に答える 0