ES6中類的this問題

2021-10-05 23:23:02 字數 1491 閱讀 9402

類裡面的共有屬性和方法一定要加this使用

const x =

1class

test

foo(

)foo_()

}const test =

newtest()

test.

foo_()

// 2

test.

foo(

)// 1 不用this繫結到類時,會直接尋找全域性的變數和方法

test.x =

3test.

foo_()

// 3

class的this指向

類的方法內部如果有this,預設(只是預設)指向類的例項,但是如果賦值給第三方直接使用則可能會報錯

class

test

foo()}

const test =

newtest()

// 使用new關機鍵將this指向test例項

test.

foo(

)// 1

const foo = test.foo

foo(

)// 因為賦值再呼叫,this指向undefined,找不到a,報錯(不是指向window)

解決方法:

const x =

1class

test

foo(

)foo_()

}const test =

newtest()

const obj =

obj.foo = test.foo

obj.foo_ = test.foo_

obj.

foo(

)// 2 this指向仍為例項

obj.

foo_()

// 3 this指向為呼叫的obj物件

test.x =

4obj.foo = test.foo

obj.

foo(

)// 4 再一次證明this指向例項

const x =

2class

test

foo=()

=>

foo_()

}const test =

newtest()

// 使用new關機鍵將this指向test例項

const obj =

obj.foo = test.foo

obj.foo_ = test.foo_

obj.

foo(

)// 2

obj.

foo_()

// 3

test.x =

4obj.foo = test.foo

obj.

foo(

)// 4

es6中類的理解

類的資料型別就是函式,類本身就指向建構函式 point point.prototype.constructor 類的所有方法都定義在類的prototype屬性上面。在類的例項上面呼叫方法,其實就是呼叫原型上的方法class point tostring tovalue 等同於 point.proto...

es6 定義靜態類 es6中靜態變數

最近剛看react,什麼是靜態方法不太懂,就我目前所理解的說一下,如有不對望不吝賜教 首先說一下react的單向資料流。呼叫了hello這個元件,跟普通的函式呼叫差不多,name jhon 是它的實參,在定義hello元件這裡 class hello extends react.component ...

es6 定義靜態類 ES6中類的靜態方法有哪些作用

以前看過的es6的東西,又忘了,再總結下 類相當於例項的原型,所有在類中定義的方法,都會被例項繼承。如果在乙個方法前,加上static關鍵字,就表示該方法不會被例項繼承,而是直接通過類來呼叫,這就稱為 靜態方法 class foo static classmethod return hello fo...