相对 JS 新手在这里试图了解定义 JS 对象的两种方式之间的区别......
在某些情况下,我看到了一些我称之为“命名空间”对象或“处理程序”的示例,它们可能看起来像这样:
var example = {
message: null,
setup: function( message ) {
example.message = message;
alert( message );
}
}
我可能会使用这样的东西来分组一些相关的功能。如果我打电话,example('foo!')
我希望会foo!
出现一条警报消息,如果我打电话,example.message
我希望它会返回foo!
。
我的第一个问题是:这种对象(未定义为函数)叫什么?
我在我的网站中经常使用这样的对象,作为处理程序来设置一堆用于 ajax 交互的绑定等。我一直在尝试学习面向对象的 javascript,并且一直在做一些阅读(1、2)。在 Mozilla 文档中,建议将对象定义为函数,所以更像这样:
var example = function( message ) {
....
}
我的第二个问题是:这种对象(定义为函数)叫什么?
我不太了解两者之间的区别,所以我遇到了很多问题,这就提出了问题 3:
如果你将一个对象定义为一个函数,如果你不一定希望它们在实例化时执行,你如何定义对象的属性?
IE。如果我这样做:
var example = function( message ) {
alert('message');
}
然后我知道这example('foo!')
会触发警报foo!
。但是,如何在对象上定义其他属性或方法以供以后访问和/或调用?