javascript - 一个对象可以有它的原型没有的属性吗?
问题描述
在 JavaScript 中,一个对象和它的原型(即它prototype
作为对象的属性)必须具有完全相同的一组属性吗?
一个对象可以有它的原型没有的属性吗?
解决方案
在 JavaScript 中,一个对象和它的原型(即它作为对象的属性原型)必须具有完全相同的一组属性吗?
不,prototype
用于创建对象的实例。在创建实例的那一刻,该实例成为与原型分离的对象,对其进行修改不会影响原型(但是,对原型的更改会影响实例)。欢迎来到原型继承!
一个对象可以有它的原型没有的属性吗?
是的,这是一个例子:
function foo(){
// doesn't matter what it does
}
let fooInstance = new foo();
console.log(foo.prototype.bar); // undefined
console.log(fooInstance.bar); // undefined
console.log("************************");
// Give the instance object a new property.
// This does not create a property on the instance's prototype
fooInstance.bar = "baz";
console.log(foo.prototype.bar); // undefined
console.log(fooInstance.bar); // baz
console.log("************************");
console.log(foo.prototype.hasOwnProperty("bar")); // false
console.log(fooInstance.hasOwnProperty("bar")); // true
推荐阅读
- ios - iOS 13 中的推送通知问题
- flutter - 如何将日历时间更改为 jalali(波斯语)
- python - 按列号汇总数据框列表
- delphi - 如何制作动态事件:Delphi 中的 onCreate 和 onChange
- react-native - 应用变换动画时,TouchableOpacity 不起作用
- ios - Swift 日期格式返回错误的日期
- c++ - 将一个 4 位整数分解成它的数字,一个奇怪的问题
- node.js - 如何在nodejs中读取json文件?
- java - 求解二次阻力的耦合微分方程
- kotlin - kotlin 中的 JPA 错误:“学生”类应该有 [public, protected] no-arg 构造函数