为了账号安全,请及时绑定邮箱和手机立即绑定

给属性加了readonly的修饰器以后,再用new Numberic().PI去访问属性为undefined

怎么我给属性加了readonly的修饰器以后,再用new Numberic().PI去访问属性为undefined啊,有遇到相同问题的吗

正在回答

4 回答

视频里说了,需要开启严格模式,在 ts 文件开头增加 

"use strict";

即可

0 回复 有任何疑惑可以回复我~

没有报错,只是修改不成功,而且readonly的第一个target是类的原型对象

0 回复 有任何疑惑可以回复我~

同问,new Numberic().PI = 100;  并没有报错啊,怎么和老师的不一样?

0 回复 有任何疑惑可以回复我~
#1

高龙丶

是没有报错,应该是babel用的版本高吧,修改PI=100后,PI的值还是3.1415926,可以参考我的测试: console.log(new Numberic().PI); // 3.1415926 // 修改PI的值 new Numberic().PI = 100 ; console.log(new Numberic().PI); // 3.1415926
2019-01-12 回复 有任何疑惑可以回复我~
#2

kulolox 回复 高龙丶

你这个直接把类实例化2次了,是两个不同的实例,你改的是其中一个,查看的是另一个。 ``` const my = new Numberic(); my.PI = 100; console.log(my.PI); // 100 ``` 我这个也没报错,而且PI被修改了。
2019-01-25 回复 有任何疑惑可以回复我~
#3

取个昵称好难的说 回复 高龙丶

所以是因为什么 ,同没有报错啊 !
2019-02-22 回复 有任何疑惑可以回复我~
#4

取个昵称好难的说 回复 高龙丶

我发现了,在代码的顶部加上"use strict"开启严格模式,就会报错了
2019-02-22 回复 有任何疑惑可以回复我~
查看1条回复

同问,完全找不到了

0 回复 有任何疑惑可以回复我~
#1

高龙丶

是没有报错,应该是babel用的版本高吧,修改PI=100后,PI的值还是3.1415926,可以参考我的测试: console.log(new Numberic().PI); // 3.1415926 // 修改PI的值 new Numberic().PI = 100 ; console.log(new Numberic().PI); // 3.1415926
2019-01-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

给属性加了readonly的修饰器以后,再用new Numberic().PI去访问属性为undefined

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信