老师说用p来添加静态属性和方法?

老师说用p来添加静态属性和方法?

可是静态属性只能在类外面添加啊?在外面就访问不到P了请问怎么添加?不知道如何操作。静态方法也不需要类名啊。。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,是的,有两种方式。代码中的解释没有问题,static定义的不需要实例化就可以直接调用 ,在类里面定义的,需要先实例化,才能通过类调用。

祝学习愉快!

好帮手慕星星 2020-05-28 11:55:06

同学你好,类表达式中有点不一样的。问题解答如下:

1、之前学习过的静态属性设置是这样的

http://img1.sycdn.imooc.com//climg/5ecf325f0983c9c404820096.jpg

在类外面,通过类添加静态属性。但是类表达式中的类名在外面是拿不到的,外面输出P就会报错。例如:

P只能在表达式中设置属性

http://img1.sycdn.imooc.com//climg/5ecf342109b9c0c803650308.jpg

http://img1.sycdn.imooc.com//climg/5ecf352809bf6aeb06620061.jpg

类表达式P赋值给Person了,所以最后实例化的是Person 。也可以实例化之后再获取a,这时候执行了构造器,可以直接通过Person获取a了

http://img1.sycdn.imooc.com//climg/5ecf4d5d09eafafe03750260.jpg

http://img1.sycdn.imooc.com//climg/5ecf4d7d090c12b101560035.jpg

2、另外之前的静态方法是通过static关键字添加的,这里也是在类中添加,在类中使用

http://img1.sycdn.imooc.com//climg/5ecf35d809690fb804170412.jpg

http://img1.sycdn.imooc.com//climg/5ecf3609095d582e06090438.jpg

实例化之后也可以在外面调用

http://img1.sycdn.imooc.com//climg/5ecf4dd2091dfc8a04250439.jpg

http://img1.sycdn.imooc.com//climg/5ecf4ddb097b4bf404010104.jpg

自己可以测试理解下,两种不同的方式设置。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 功不唐捐终入海 #1
    谢谢老师的解答!也就是说有两种书写静态属性的方法? 第一种: class Car{ constructor(){ } } Car.tool=4 console.log(Car.tool);//4 这种可以不用实例化对象就能输出。 第二种: class Car{ constructor(){ Car.speed=0; } } console.log(Car.speed); //undefined; new Car(); console.log(Car.speed);//0 必须实例化后才能输出。但他们都是挂在类上的静态属性。 静态方法如果不是类表达式的话只有使用static声明。 是类表达式的话可以通过 const Car1=class Car{ constructor(){ Car.a=function(){ console.log('我是一个静态方法'); } Car.b='我是一个静态属性!'; } static say(){ console.log('我也是一个静态方法1!'); } }这两种方法添加是不是?和静态方法一样。static不用实例化就可以输出.通过挂在类名上方法添加的必须实例化才行。
    2020-05-28 14:37:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师