了解javascript中的构造函数属性
似乎我不理解构造函数的概念,所以我写了一些代码来测试它。假设您有如下代码:了解javascript中的构造函数属性,javascript,Javascript,似乎我不理解构造函数的概念,所以我写了一些代码来测试它。假设您有如下代码: var test=function(){...} 我知道在test.prototype对象中有一个名为constructor的属性,它指向test对象 我的问题来了: 此属性(constructor)是否仅属于原型对象?或者所有对象都具有构造函数属性 我做了另一个测试。代码如下所示: function Shape() { this.x = 0;
var test=function(){...}
我知道在test.prototype
对象中有一个名为constructor
的属性,它指向test
对象
我的问题来了:
此属性(
constructor
)是否仅属于原型对象?或者所有对象都具有构造函数属性
我做了另一个测试。代码如下所示:
function Shape() {
this.x = 0;
this.y = 0;
}
Shape.prototype.move = function(x, y) {
this.x += x;
this.y += y;
console.info("Shape moved.");
};
Rectangle = Object.create(Shape);//inherit from the Shape instead of Shape.prototype
Rectangle.constructor==Function//it is true.
我不知道矩形.constructor是从哪里来的,还是从形状继承的?谢谢。对象。create
返回一个对象,其原型就是您传递给它的对象
因此,既然Shape.constructor
是Function
(Shape
是Function
对象),Rectangle
继承了它。所有对象都有constructor
属性吗?你的意思是只有Function
像Shape
这样的对象才有constructor
?谢谢。我认为它完全来自于函数。prototype
,而不是像您在形状中所说的那样,因为say所有对象都从其prototype
继承构造函数属性,对吗?@Joe.wang,您可能对prototype有些困惑。阅读本文: