js中对象属性和类属性

387 阅读1分钟

@TOC

js中对象属性和类属性

面试中经常遇到这个样的小面试题如下所示

class Test{
	a= 1 // 对象属性
}
Test.a = 10 // 类属性
console.log(Test.a)//10
let obj = new Test() // 对象属性要new()之后才能取得到
console.log(obj.a) // 1
console.log(Test.a,obj.a) // 10 1 这里是不是大家有疑问,不是a已经赋值了10了吗,怎么不是10,10

运行结果如下。 在这里插入图片描述 由此可见js中对象属性要想获得就得new之后才能取得到,直接获取到的属性值是类属性,不需要new出来。

上述代码用es7的写法写出来

代码如下:

class Test{
	a=1 // 对象属性
	static a=10 // 类属性
}
console.log(Test.a) // 10 这里得到的是类属性
let obj = new Test() // 这个是new一个新的对象实例
console.log(obj.a)  // 1 这里取的是对象属性
console.log(Test.a,obj.a) // 10 1
Test.a = 99
console.log(Test.a,obj.a)// 99 1

代码运行结果如下图所示: !代码运行结果(https://img-blog.csdnimg.cn/3d9953e885b546d88ec72efdf9c55010.png)

总结

js中对象的类属性和对象属性总结一句话——类属性直接取,对象属性new()后取。

本文与CSDN上是同意作者blog.csdn.net/weixin_4076…