我想做一些在 Java、C# 等经典的面向对象语言中很容易做到的事情。我只是想访问实例化对象的属性。该对象在浏览器的窗口对象中是全局范围的,并由 twitter @anywhere API 提供。
对于我的代码示例,假设您已经登录了用户。
例如,如果我使用 java,我会说(假设所有字段都是公共的:
twttr = new twtter();
String screenName = twtter.currentUser.data('screen_name');
出于某种原因,这在 Javascript 中很难。我已经找到了一种解决方法,在 Twitter 任何 API 正在使用的匿名方法中,我将我想要的值设置为 DOM 元素,然后再将其取出。不过这很丑。我只想直接访问它。
这是我到目前为止所拥有的,它甚至没有通过 Eclipse 中的语法检查:
function AnywhereFacade()
{
var twitterReference;
window.twttr.anywhere
(
return function(T)
{
twitterReference = T;
};
)
getValue(propertyToGet)
{
return twitterReference.currentUser.data(propertyToGet);
}
};
var anywhereFacade = AnywhereFacade();
var screen_name = anywhereFacade.getValue("screen_name");
alert("screen name is: " + propertyGetter);
请帮忙!为什么 Javascript 这么难用?我想做的是使用我认为的闭包。
谢谢!