Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 - Fatal编程技术网

Javascript 对象属性与对象原型

Javascript 对象属性与对象原型,javascript,Javascript,已编辑 这样做的区别是什么: var a = function(){}; a.myProperty = function(){}; 与: var a = function(){}; a.prototype.myProperty = function(){}; 我意识到这可能是一个愚蠢或模糊的问题,但我需要了解什么才能知道两者之间的区别,以及何时使用其中一个而不是另一个?没有区别。您可以在对象上设置属性 请注意,第二个示例失败,因为您没有将a.prototype设置为值 当然,如果你做了一个函

已编辑

这样做的区别是什么:

var a = function(){};
a.myProperty = function(){};
与:

var a = function(){};
a.prototype.myProperty = function(){};

我意识到这可能是一个愚蠢或模糊的问题,但我需要了解什么才能知道两者之间的区别,以及何时使用其中一个而不是另一个?

没有区别。您可以在对象上设置属性

请注意,第二个示例失败,因为您没有将
a.prototype
设置为值

当然,如果你做了一个函数,那么默认情况下它会得到一个原型属性

.prototype
属性有一个特殊的属性。如果调用
newsomefunction
,则返回值的
[[Prototype]]
someFunction.Prototype


这仅适用于
.prototype
是函数的属性的情况。因为新的只对函数有效。

请注意,这个问题自第一次提出以来就被大量编辑过,这就是为什么现有的注释和答案毫无意义的原因

所有函数都有原型。附加到这些原型的方法可用于通过将函数作为构造函数调用而创建的对象实例。因此,在第二个示例中,如果您编写
var o=newa()然后您将能够调用
o.myProperty()


此外,所有函数都是对象,因此可以直接在函数本身上设置任意属性,如第一个示例所示。您还可以使用
o.constructor
(或
this.constructor
从成员函数)从对象访问函数。这可以用来实现C++静态类变量的等价。

对象没有<代码>。后一种代码不起作用