Javascript 在这段代码的幕后发生了什么?
每个脚本的幕后都发生了什么。假设我将是Javascript 在这段代码的幕后发生了什么?,javascript,Javascript,每个脚本的幕后都发生了什么。假设我将是getsize()alot,那么代码之间有什么区别吗: 代码1: function Size (width, height) { this.width = width; this.height = height; } function getSize() { return new Size (0, 0); } 代码2 function getSize () { return {width: 0; height: 0}; }
getsize()
alot,那么代码之间有什么区别吗:
代码1:
function Size (width, height)
{
this.width = width;
this.height = height;
}
function getSize()
{
return new Size (0, 0);
}
代码2
function getSize ()
{
return {width: 0; height: 0};
}
我认为它们在所有意义上都是等价的,但只是想检查一下。它们(本质上)是等价的现在是,但直到大小的原型发生变化。如果这在将来的任何时候发生变化,您的{width:0,height:0}
将不正确,因此最好使用返回新的大小(0,0)代码>
唯一真正的区别是大小
对象是与通用JS对象不同的对象的实例:
var a = new Size(0,0);
var b = {width:0, height:0};
alert(a == b) // would be false even if JS didn't always say two objects are different (see comments)
在第一个代码示例中,返回一个名为Size的命名对象,在第二个代码中,返回一个匿名javascript对象。因此,您将丢失Size对象构造函数和原型,从而无法进一步扩展所有类似对象。第一个返回一个Size
对象,第二个返回一个“标准”JS对象???问题是什么?=
注释有点让人困惑,因为“相等”对象在这个意义上永远不相等<代码>{}!=={}
。