首页 > 其他分享 >当类中一个属性只有get()方法而无set()方法时,该属性是无法进行赋值的,连构造方法中的初始化都不行

当类中一个属性只有get()方法而无set()方法时,该属性是无法进行赋值的,连构造方法中的初始化都不行

时间:2023-11-13 15:35:30浏览次数:30  
标签:当类 初始化 set 构造方法 get price 属性

执行以下程序,输出结果为()

class Phone{
  constructor(price){
    this.price = price;
  }
  get price(){
    return 999;
  }
}
var p = new Phone(888);
console.log(p.price);

A
999

B
undefined

C
抛出异常

D
888

正确答案:C

当类中一个属性只有get()方法而无set()方法时,该属性是无法进行赋值的,连构造方法中的初始化都不行,因此,当对象的price属性在构造方法中进行初始化,会抛出异常。

这个应该是class底层用到了Objetct.defineProperty() : 对访问器属性price只是设置了get,set默认没有,所以price属性视为读属性

然后在第三行 this.price = price又用了设置price(set),所以会报错: price是只读的

解决: get price() {}后面加上: set price(value) {} ===> set需要参数!!! 就返回999了

标签:当类,初始化,set,构造方法,get,price,属性
From: https://www.cnblogs.com/longmo666/p/17829256.html

相关文章

  • 如何将视频上传到可用于HTML5 <video> 标签的 'src' 属性的平台?
    要将视频上传到可用于HTML5<video>标签的'src'属性的平台,您需要遵循以下步骤:1.选择一个支持视频上传的平台,例如YouTube、Vimeo或自建服务器。2.注册并登录到所选平台。3.创建一个新的视频项目或上传您的视频文件。4.获取视频的嵌入代码或URL。这通常可以在平台的管理页......
  • 11月12日基础的网页设计以及阴影的设计box-shadow属性
    目录基础的网页设计html的代码css的代码阴影效果添加基础的网页设计html的代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>今天网页</title><linkrel="stylesheet"href="样式.css"......
  • 如何在“radio”输入字段中使用“required”属性
    内容来自DOChttps://q.houxu6.top/?s=如何在“radio”输入字段中使用“required”属性我只是想知道如何正确使用HTML5中的新输入属性"required"来处理单选按钮。每个单选按钮字段是否都需要像下面这样的属性,或者只有一个字段有该属性就足够了?<inputtype="radio"name="colo......
  • 11月12日基础的网页设计以及阴影的设计box-shadow属性
    目录基础的网页设计html的代码css的代码基础的网页设计html的代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>今天网页</title><linkrel="stylesheet"href="样式.css">&......
  • Android自定义View使用系统自有属性
    原文链接:Android自定义View使用系统自有属性-Stars-One的杂货小窝本篇默认各位有自定义View的相关知识,本篇只作为一个小知识点补充有这样一种情况,比如说我们的一个自定义View中有个maxLines的属性,但是我们会注意到这个maxLines其实Android里面已经存在了(如TextView中),我们能......
  • Linux中的权限属性以及ACL相关的命令
    Linux系统中,一切皆文件。对于存在于Linux系统的文件来讲系统中的用户分别属于三种不同的角色,分别是属主、属组、其他。属主:所有者 owner|user  u属组:属于哪个组groupg其它用户:不是所有者,也不是组中的用户othero三个角色对文件拥有三种不同的权限:读权限  read     ......
  • CSS3学习笔记-字体属性
    在CSS3中,可以使用字体属性来控制网页中文本的样式和排版。以下是常用的字体属性:font-family该属性用于指定网页中的文本所使用的字体。我们可以通过使用通用的字体名称,或者直接使用字体名称,在多个字体之间进行设置。例如:```cssbody{font-family:Arial,Helvetica,sans-......
  • 如何修复页脚的 CSS 属性无法正确显示的问题?
    修复页脚的CSS属性无法正确显示的问题需要进行以下步骤:检查CSS代码:检查页脚CSS代码中是否存在拼写错误、语法错误等问题。确保代码中的所有属性和值都正确书写。检查选择器:确认CSS中的选择器是否正确匹配到页脚元素。可以在浏览器开发者工具中检查元素的样式是否被正确应用......
  • 全局window对象调用,但是window并没有这个属性则会 undefined
    下面这段JS程序的执行结果是:varuser={count:1,getCount:function(){returnthis.count;}}varfunc=user.getCountconsole.log(func())Athis.countB1C报错Dundefined正确答案:D//1.调用对象未声明的属性会undifnedvaruser={};console.log(us......
  • 一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”(iterable)
    请问以下JS代码的执行结果是什么?functioncontrol(x){if(x==3)thrownewError("break");}functionfoo(x=6){return{next:()=>{control(x);return{done:!x,value:x&&x--};}}}letx=newObject;x[Symbol.......