gpt4 book ai didi

javascript - 定义 `prototype` 属性的地方

转载 作者:数据小太阳 更新时间:2023-10-29 06:06:38 28 4
gpt4 key购买 nike

好吧,我一直认为所有对象都存在原型(prototype)属性。但是在一次工作面试之后,我回到家并打开了 chrome 控制台

window.prototype
**undefined**

什么鬼?

Object.prototype
**Object {}**

好的

var a = {};
a.prototype
**undefined**

var a = function(){}
a.prototype
**Object {}**

我读过 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype好几次还是不清楚。谁能解释一下?

谢谢

附言 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype

All objects in JavaScript are descended from Object; all objects inherit methods and properties from Object.prototype, although they may be overridden (except an Object with a null prototype, i.e. Object.create(null)

window是Object,所以必须有prototype属性

最佳答案

实例继承的对象及其原型(prototype)存储在内部属性中,[[Prototype]] .它的值可以用 Object.getPrototypeOf() 检索(在 ES5 兼容引擎中)。

console.log(Object.getPrototypeOf(window));
// Window { ... }

var a = {};
console.log(Object.getPrototypeOf(a));
// Object { ... }

只有 function 明确具有 prototype property :

console.log(typeof Object);
// 'function'

并且,prototype 的值只是用来设置实例的[[Prototype]] 的值,当一个new 实例已创建。

function Foo() {}
var bar = new Foo();

console.log(Foo.prototype === Object.getPrototypeOf(bar)); // true

关于javascript - 定义 `prototype` 属性的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24207558/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com