@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
代码运行结果如下图所示:
总结
js中对象的类属性和对象属性总结一句话——类属性直接取,对象属性new()后取。
本文与CSDN上是同意作者blog.csdn.net/weixin_4076…