javascript - JS 在原型上定义一个 getter 函数显示在对象本身上
问题描述
我有以下代码向原型添加属性:
"use strict";
var User = /** @class */ (function () {
function User() {
}
Object.defineProperty(User.prototype, "prop", {
get: function () {
return 1;
},
enumerable: true,
configurable: true
});
return User;
}());
console.log(new User());
console.log 函数的输出如下:(在 Chrome 中)
User {}
prop: 1 <====
__proto__:
prop: 1 <=====
constructor: ƒ User()
get prop: ƒ ()
__proto__: Object
似乎该属性存在于实例和__proto__
. 它不应该只存在于__proto__
?
解决方案
这似乎是 Chrome 的一个错误(或奇怪的“设计”行为)。它在 Firefox 和 Safari 中运行良好。
推荐阅读
- css - 如何使滚动捕捉在 FF 中以 body 作为滚动容器工作
- c++ - 防止用户输入会导致整数溢出的值
- php - 使用 PHP 自动增加数组值
- c# - dotnet-sonarscanner - 后处理失败 - “找不到或加载主类”
- kubernetes - Istio 服务及其使用
- java - Gradle 有没有办法使用 curl 命令解决依赖关系?
- android - 在签名的调试应用程序中测试订阅时出错
- c# - 在 Windows 机器上的 .net 中使用 C#,有没有办法确定特定应用程序正在使用或打开的 tcp 或 udp 端口?
- reactjs - 将 HTML/CSS/JS Mapbox 文件转换为 React
- react-native - 如何检测 React Native 应用程序中的视图溢出?