當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript --- 使用语法糖class定义函数
生活随笔
收集整理的這篇文章主要介紹了
javascript --- 使用语法糖class定义函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文討論的是通過class聲明的函數,有什么特點,或者說是指向了哪里.
class A() {} // A是一個類// 要看class聲明的函數指向哪里,只需將其[[Prototype]]屬性打印到控制臺,下面看看A和它的原型對象的指向 // 注:[[Prototype]]屬性通過__proto__訪問 console.log(A.__proto__); console.log(A.prototype.__proto__);
可以看見,第一個是Function的原型對象,第二個是Object的原型對象.
即有下面等式,
可以看出,通過class聲明的函數其構造函數(A)是指向函數的原型對象(Function.prototype)
其原型對象(A.prototype)是指向對象的原型對象的(Object.prototype)
在看看通過function聲明的函數有啥特點:
function A() {} console.log(A.__proto__ ); console.log(A.prototype.__proto__ );  可以看見.使用class和 function聲明函數時,其構造函數,和原型對象的指向是一樣的.在看看class和function聲明的構造函數生成的實例:
function A() {} class B {} var a = new A(); var b = new B(); console.log(a); console.log(b);
可以看見,實例a的[[Prototype]]屬性是指向A的原型函數A.prototype. (constructor:f A())
實例b的[[Prototype]]屬性是指向B的原型B.prototype. (constructor: class B)
A的原型對象的[[Prototype]]屬性指向Object的原型對象
B的原型對象的[[Prototype]]屬性指向Object的原型對象
由此可見,在使用new操作符時(例如:var a = new A()),實際上是生成一個名字為a的對象,
a的[[Prototype]]屬性是指向A的原型.從而a可以使用A原型上定義的屬性和方法,
總結
以上是生活随笔為你收集整理的javascript --- 使用语法糖class定义函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用计算机画好看的图形,如何画一手漂亮的电
- 下一篇: javascript --- 编程风格