前言
我有一个对象,我们称之为'A'。我通过A.__proto__.AsDf = -1;
向它的原型添加了一个函数。现在'A'的所有孩子也有'AsDf === -1`的属性。
我一直在阅读,我想我明白了发生了什么,但我希望得到一些确认,也许还有更多关于它如何运作的信息(假设并非全部都有)。
问题:
A.__proto__
是对象,这意味着我正在添加'AsDf = -1;'所有对象?答案 0 :(得分:3)
__proto__
,A.constructor.prototype
(如果有)或Object.getPrototypeOf(A)
Object.getPrototypeOf(A) === Object.prototype
,则此处设置属性意味着每个对象都会继承它们A
的?做A = Object.create({});
可能会更好,为自己提供一个可以安全使用的原型。A
是对象而不是功能,您如何拥有“{1}}的”孩子“?你的意思是child = A.someProperty = {};
?使用Object.create({})
var A = Object.create({});
A.foo; // undefined
Object.getPrototypeOf(A).foo = 'bar';
A.foo; // "bar"
A.fizz = {};
A.fizz.foo; // undefined
// but note that because fizz was made with {} we have
Object.getPrototypeOf(A.fizz) === Object.prototype; // true
// even though we made it so that
Object.getPrototypeOf(A) === Object.prototype; // false
// i.e. the only relation between them is the property reference