我知道“__proto__
是一个对象的内部属性,指向它的原型”,所以在下面的例子中,我认为它c2.prototype
等于c2.__proto__
. 为什么它们没有相同的值?
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
window.onload = function() {
var Circle = function(radius) {
this.radius = radius;
this.doubleRadius = function() {
return this.radius * 2;
}
}
var c1 = new Circle(4);
Circle.prototype.area = function() {
return Math.PI*this.radius*this.radius;
}
var c2 = new Circle(5);
console.log('--- first circle object, created before adding "area" method');
console.log(c1.radius);
console.log(c1.doubleRadius());
console.log(c1.area());
console.log('--- second circle object, created after adding "area" method');
console.log(c2.radius);
console.log(c2.doubleRadius());
console.log(c2.area());
console.log(c2.prototype); // undefined
console.log(c2.__proto__); // Object { area=function() }
}
</script>
</head>
<body>
</body>
</html>