Javascript 当使用使用对象的prototype属性和new关键字定义的方法时,会发生什么区别

Javascript 当使用使用对象的prototype属性和new关键字定义的方法时,会发生什么区别,javascript,Javascript,我的代码在使用第一个案例时有效。然后我想知道第二个案例。单击按钮时,此.x和此.y值​​是否未定义 我的html代码: <!DOCTYPE html> <html> <head> <script type="text/javascript" src="ObjectKavrami.js"> </script> <title></title> </head> <body> <butt

我的代码在使用第一个案例时有效。然后我想知道第二个案例。单击按钮时,此.x和此.y值​​是否
未定义

我的html代码:

<!DOCTYPE html>
<html>
<head>
 <script type="text/javascript" src="ObjectKavrami.js">
</script>
 <title></title>
</head>
<body>
<button id="demoObjectPrototype" onclick="onObjectWithPrototype()">JavaScript Object</button>
 </body>
</html>
案例2:返回
NaN

var areaCalc = function(x,y) {
    this.x = x ;
    this.y = y ;
} 
areaCalc .prototype = {
        area: function() { return (this.x * this.y); }
}
//var newarea = new areaCalc (5,23);

function onObjectWithPrototype () {
     areaCalc(2,3);
     alert(areaCalc.prototype.area());
     //alert(newarea .area());
 }

为什么该方法看不到x和y值?

此行为背后的主要原因是new关键字将原型对象与变量绑定。因此,在第一种情况下,当您使用area=new areaCalc(5,23)时,原型对象在new关键字的帮助下绑定,因此当在原型对象内使用此关键字时,它将与调用它的对象关联。
但在第二种情况下,原型对象与任何对象都没有关联。这就是它做出这种行为的原因

主要是因为
这个
区域()内
将是
原型
对象,因为
这个
总是出现在最后一个
之前。第二,因为这根本不是它应该被使用的方式。我想知道为什么ı需要新的对象?对于这一点,请使用第二种情况。İf area是areaCalc的一个属性,为什么我看不到x和y值不确定您是否只是以误导的方式解释了它,但是原型对象并没有与创建的对象“绑定”…
var areaCalc = function(x,y) {
    this.x = x ;
    this.y = y ;
} 
areaCalc .prototype = {
        area: function() { return (this.x * this.y); }
}
//var newarea = new areaCalc (5,23);

function onObjectWithPrototype () {
     areaCalc(2,3);
     alert(areaCalc.prototype.area());
     //alert(newarea .area());
 }