2016-12-08 12 views
4

"識別子[...]は既に宣言されています(...)"。どのようにChrome Devtoolsコンソールでクラス変数の設定を解除するには?クロームコンソールで

# One 
class A { 
    constructor(x) { this.x = x } 
} 

class A { 
    constructor(x, y) { this.x = x; this.y = y } 
} 

VM602:1 Uncaught SyntaxError: Identifier 'A' has already been declared(…) 


# Two 
class A { 
    constructor(x) { this.x = x } 
} 
delete A 
true 
class A { 
    constructor(x) { this.x = x } 
} 
VM805:1 Uncaught SyntaxError: Identifier 'A' has already been declared(…) 


# Three 
A = null 
null 
class A { 
    constructor(x) { this.x = x } 
} 
VM817:1 Uncaught SyntaxError: Identifier 'A' has already been declared(…) 

とページのリロードなしで変数の設定を解除するには、単純にノーチャンス。ページリロードなしに削除/消去/設定解除する方法はありますか?

+0

これはノードJでも起こります。今日の時点では、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/classによると、クラスを2回宣言することはできません。 –

答えて

2

私もこの問題を探します。しかし、Web上で有用なものは見つけられません。

次のように使用します。workarround:classと同じ名前の変数を宣言します。このように:

var A = class A { constructor(x, y) { this.x = x; this.y = y } } 
new A(2,3) 
> A {x: 2, y: 3} 

がさえ、我々は別の変数を使用して、我々はまだ使用して ''

var AZ = class A { constructor(x, y) { this.x = x; this.y = y } } 
new AZ(2,3) 
> A {x: 2, y: 3} 

しかし、クラス定義をタイプしてオブジェクトを取得:

var A = class A { constructor(x) { this.x = x } } 

new A(2) 
> A {x: 2} 

それは簡単redifined方法ですそれクラス名は作成されません:

var C = class B { constructor(x, y) { this.x = x; this.y = y } } 
new C(2,3) 
> B {x: 2, y: 3} 
new B(2,3) 
> VM342:1 Uncaught ReferenceError: B is not defined 
関連する問題