现在有些事让我感到困惑。在文件中,我看到以下代码this.xCenter = options.xPos;
但是,我在xCenter
对象中找不到地点define this
。然后我添加像this.myattr = 12;
这样的行,令我惊讶的是,代码正常运行并且没有显示任何错误。在我知道运行结果之前,我认为代码应该运行不正确,因为this
没有定义myattr
的属性,所以我很困惑。这与Java的语法完全不同。反过来,我认为这是一种为对象定义/添加属性的方式,我的假设正确,或者只是代码意味着其他东西,伙计们?
答案 0 :(得分: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是一种静态(强烈)类型的语言,因此必须在使用之前声明变量和属性。