为什么 Object 对象中的某些属性不会在子对象中继承

Why some of the properties from the Object object are not inherited in sub-objects?

本文关键字:对象 继承 Object 为什么 属性      更新时间:2023-09-26

在测试以下代码时,我发现"keys"属性没有在我的对象中继承:

var obj = {x: 0, y:1};
console.log (Object.keys); //function
console.log (obj.keys); //undefined

因此,我的理解是某些属性(在对象中)不会在用户定义的对象中继承。为什么?这些属性是否只能通过对象对象使用?是否有任何技巧可以获取在用户定义对象中不可用或继承的属性列表?

只有.prototype对象作为原型继承。静态类属性不是。

function Foo() {};
Foo.prototype.bar = function () {};
Foo.baz = function () {};
var f = new Foo();

f将继承bar,但不会继承baz

> Object.keysObject 变量的静态属性,obj.keysobj 变量的属性,它将继承自 Object.prototype .你会发现这会起作用:

console.log(obj.hasOwnProperty); //function