类的定义
- 与函数类型类似,定义类也有两种主要方式:类声明和类表达式。这两种方式都使用class关键字加大括号
//类的声明
class Person {}
//类的表达式
const Animal = class {};
- 与函数表达式类似,类表达式在它们被求值之前也不能引用。不过,与函数定义不同的是,虽然函数声明可以提升,但类定义不能。
- 与函数声明不同的地方是,函数受函数作用域的限制,而类受块作用域的限制
类的构成
- 包含构造函数、实例方法、获取函数、设置函数和静态类方法,但这些都不是必须的。空的类定义照样有效。默认情况下、类定义中代码都在严格模式下执行
//空定义,有效
class Foo {}
//有构造函数的类,有效
class Bar {
constructor(){}
}
//有获取函数的类,有效
class Baz {
get myBza(){}
}
//有静态方法的类,有效
class Qux {
static myQuex() {}
}
类的构造函数
- 使用new操作符实例化Person的操作等于使用new调用其构造函数
- 在内存中创建一个新的对象
- 这个新对象内部的[[Prototype]]指针被赋值为构造函数的prototype属性。
- 构造函数内部的this被赋值这个新的对象
- 执行构造函数内部的代码(给新对象添加属性)
- 如果构造函数返回非空对象,则返回该对象,否则创建新的对象。
class Animal {}
class Person {
constructor() {
console.log('person color')
}
}
class Vegetable {
constructor() {
this.color = 'orange';
}
}
let a = new Animal();
let p = new Person(); //person color
let v = new Vegetable();
console.log(v.color); // orange
- 默认情况下,类的构造函数执行完之后会返回this对象。构造函数返回的对象会被用作实例化的对象,如果没有什么引用新创建的this对象,那么这个对象会被销毁。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
- 找不到素材资源介绍文章里的示例图片?
- 对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
- 模板不会安装或需要功能定制以及二次开发?
- 请QQ联系我们
发表评论
还没有评论,快来抢沙发吧!