Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对父原型的更改会将属性添加到子原型_Javascript_Prototypal Inheritance - Fatal编程技术网

Javascript 对父原型的更改会将属性添加到子原型

Javascript 对父原型的更改会将属性添加到子原型,javascript,prototypal-inheritance,Javascript,Prototypal Inheritance,前言: 我有一个对象,我们称它为“A”。我通过a向它的原型添加一个函数。现在,“A”的所有子级也都有一个属性“AsDf==-1” 我一直在四处阅读,我想我理解正在发生的事情,但我希望得到一些确认,也许还有更多关于它如何工作的信息(假设这还不是全部) 问题: 这是因为A.\uuuu proto\uuuuu是对象,这意味着我添加了'AsDf=-1;'对所有对象 此外,如果是这样的话,那么创建一个与“a”相同的新对象(原型不是对象)会不会让它只向其添加“AsDf”,而不向其子对象添加?(假设所有子对

前言:

我有一个对象,我们称它为“A”。我通过
a向它的原型添加一个函数。现在,“A”的所有子级也都有一个属性“AsDf==-1”

我一直在四处阅读,我想我理解正在发生的事情,但我希望得到一些确认,也许还有更多关于它如何工作的信息(假设这还不是全部)

问题:

  • 这是因为
    A.\uuuu proto\uuuuu
    是对象,这意味着我添加了'AsDf=-1;'对所有对象
  • 此外,如果是这样的话,那么创建一个与“a”相同的新对象(原型不是对象)会不会让它只向其添加“AsDf”,而不向其子对象添加?(假设所有子对象都是对象,当然不是新对象)
  • 不要通过
    \uuuu proto\uuuu
    ,或者通过
    A.constructor.prototype
    (如果可用)或者
    Object.getPrototypeOf(A)
  • 如果
    Object.getPrototypeOf(A)==Object.prototype
    那么在这里设置属性意味着每个对象都继承它们
  • 您如何创建
    A
    ?最好执行
    A=Object.create({}),给自己一个可以安全使用的原型
  • 如果
    是一个对象而不是一个函数,你怎么会有
    的“子对象”?你的意思是
    child=A.someProperty={}

  • 使用
    Object.create({})

  • 不要通过
    \uuuu proto\uuuu
    ,或者通过
    A.constructor.prototype
    (如果可用)或者
    Object.getPrototypeOf(A)
  • 如果
    Object.getPrototypeOf(A)==Object.prototype
    那么在这里设置属性意味着每个对象都继承它们
  • 您如何创建
    A
    ?最好执行
    A=Object.create({}),给自己一个可以安全使用的原型
  • 如果
    是一个对象而不是一个函数,你怎么会有
    的“子对象”?你的意思是
    child=A.someProperty={}

  • 使用
    Object.create({})

  • 不要通过
    \uuuu proto\uuuu
    ,或者通过
    A.constructor.prototype
    (如果可用)或者
    Object.getPrototypeOf(A)
  • 如果
    Object.getPrototypeOf(A)==Object.prototype
    那么在这里设置属性意味着每个对象都继承它们
  • 您如何创建
    A
    ?最好执行
    A=Object.create({}),给自己一个可以安全使用的原型
  • 如果
    是一个对象而不是一个函数,你怎么会有
    的“子对象”?你的意思是
    child=A.someProperty={}

  • 使用
    Object.create({})

  • 不要通过
    \uuuu proto\uuuu
    ,或者通过
    A.constructor.prototype
    (如果可用)或者
    Object.getPrototypeOf(A)
  • 如果
    Object.getPrototypeOf(A)==Object.prototype
    那么在这里设置属性意味着每个对象都继承它们
  • 您如何创建
    A
    ?最好执行
    A=Object.create({}),给自己一个可以安全使用的原型
  • 如果
    是一个对象而不是一个函数,你怎么会有
    的“子对象”?你的意思是
    child=A.someProperty={}

  • 使用
    Object.create({})


    3.我使用mapping plugin
    fromJSON
    创建它们,因为它们是用C#编码的MVC视图模型。4.是的,它们是作为对象的“A”的属性。当我把问题打印出来时,我开始慢慢意识到问题的答案,但我想不管怎么说,把它贴出来而不是删除它也无妨。我想我(或其他人)可能会从中学到一些东西。还有,is
    Object.create({})创建对象的唯一方法?像
    Object.create(Object)这样的东西怎么样?这有不同的效果吗。我使用mapping plugin
    fromJSON
    创建它们,因为它们是用C#编码的MVC视图模型。4.是的,它们是作为对象的“A”的属性。当我把问题打印出来时,我开始慢慢意识到问题的答案,但我想不管怎么说,把它贴出来而不是删除它也无妨。我想我(或其他人)可能会从中学到一些东西。还有,is
    Object.create({})创建对象的唯一方法?像
    Object.create(Object)这样的东西怎么样?这有不同的效果吗。我使用mapping plugin
    fromJSON
    创建它们,因为它们是用C#编码的MVC视图模型。4.是的,它们是作为对象的“A”的属性。当我把问题打印出来时,我开始慢慢意识到问题的答案,但我想不管怎么说,把它贴出来而不是删除它也无妨。我想我(或其他人)可能会从中学到一些东西。还有,is
    Object.create({})创建对象的唯一方法?像
    Object.create(Object)这样的东西怎么样?这有不同的效果吗。我使用mapping plugin
    fromJSON
    创建它们,因为它们是用C#编码的MVC视图模型。4.是的,它们是作为对象的“A”的属性。当我把问题打印出来时,我开始慢慢意识到问题的答案,但我想不管怎么说,把它贴出来而不是删除它也无妨。我想我(或其他人)可能会从中学到一些东西。还有,is
    Object.create({})创建对象的唯一方法?像
    Object.create(Object)这样的东西怎么样?这有不同的效果吗?你能发布一些代码详细说明你是如何创建一个和它的子代的吗?不鼓励使用proto:根据您使用它的方式,我可以想出一些可能的答案。我正在创建一个via
    ko.mapping.fromJSON
    。我对proto的使用可能是令人沮丧的,我仍在学习p
    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