这段JS代码中修改什么会触发Set函数else分支抛出格式错误?
触发错误的条件
当你给person.fullName赋值不符合「名+单个空格+姓」规则的内容时,就会触发set函数的else分支抛出Invalid name format错误,常见的不符合规则的赋值场景包括:
- 赋值内容不含空格,比如
person.fullName = '张三' - 赋值内容包含2个及以上空格,比如
person.fullName = '张 三 丰' - 赋值内容首尾带空格,比如
person.fullName = ' 张三 '(按空格拆分后会得到3个元素,不符合长度为2的判断条件)
对应代码位置
- 触发set逻辑的操作:你可以在现有代码的任意位置新增给
person.fullName赋非法值的语句,比如放在原有的console.log(person.fullName)之后即可触发错误,示例:
console.log(person.fullName); // 新增下面这行就会抛出错误 person.fullName = 'JohnDoe';
- 抛出错误的代码位置:就是你给出的
Object.defineProperty配置项中set函数的else分支,对应代码段如下:
else { throw 'Invalid name format'; }
内容的提问来源于stack exchange,提问作者JLMasc
相关产品推荐
相关产品推荐

