0

现在有些事情让我再次感到困惑。在文件中,我看到以下代码this.xCenter = options.xPos;,但是,我找不到对象中定义的xCenter位置this。然后我添加了一行this.myattr = 12;,令我惊讶的是,代码运行正常并且没有显示任何错误。在我知道运行结果之前,我认为代码应该运行不成功,因为this没有定义 的属性myattr,所以我很困惑。这与Java的语法确实不同。反过来,我认为这是为对象定义/添加属性的一种方式,我的假设是否正确,或者只是代码意味着其他东西,伙计们?

4

1 回答 1

6

Javascript 是一种动态(弱)类型的语言。您可以根据需要添加属性。它们不需要先声明。

例如 :

var obj = {};      // create an object but we don't define any properties
obj.foo = "hello"; // property foo just got created
obj.bar = 10;      // and same for bar
console.log(obj);

另一方面,Java 是一种静态(和强)类型语言,因此必须在使用之前声明变量和属性。

于 2012-12-11T09:30:52.350 回答