首页 > 解决方案 > 一个对象可以有它的原型没有的属性吗?

问题描述

在 JavaScript 中,一个对象和它的原型(即它prototype作为对象的属性)必须具有完全相同的一组属性吗?

一个对象可以有它的原型没有的属性吗?

标签: javascriptprototype

解决方案


在 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


推荐阅读