这是什么Javascript代码?解释
问题描述:
这是Facebook Developers网站的一个片段。这是什么Javascript代码?解释
<div id="info"></div>
<script>
var
info = document.getElementById('info'),
update = function(response) {
if (!response.session) {
info.innerHTML = '<em>You must login using the controls at the top.</em>';
return;
}
FB.api(
{
method: 'fql.query',
query: 'SELECT name, pic_square FROM user WHERE uid=' + response.session.uid
},
function(response) {
info.innerHTML = (
'<img src="' + response[0].pic_square + '"> ' +
response[0].name
);
}
);
};
// update on login, logout, and once on page load
FB.Event.subscribe('auth.login', update);
FB.Event.subscribe('auth.logout', update);
FB.getLoginStatus(update);
</script>
以上,可以请你告诉我什么是更新变量,它的类型和工作原理,并分配的结束位置,谁调用这个函数?
其次,调用FB.api的第一个参数是什么?它是什么类型的对象?我相信第二个是回调函数吧?
答
第一个参数只是一个字符串,看起来像名称空间soap-ish事件名称。第二个确实是一个函数,必须用作某种回调函数。
答
更新是一个功能。在JavaScript中,你可以通过
var update = function() {
// body
};
或
function update() {
// body
}
而作为函数定义一个函数或者是一等公民,你可以将它们作为一个参数,如FB.Event.subscribe呼叫。
也可以直列使用匿名函数定义功能:
FB.Event.subscribe('auth.login', function() {
// body
});
的FB.api呼叫的第一个参数是一个对象,具有两个键(键 - 值对的集合):“方法'和'查询',其中有字符串作为它们的值。
你可以阅读更多关于JavaScript对象符号(JSON)位置:http://json.org/
答
更新是回调到该功能。它将根据“订阅”执行的内容执行。传入的数据是JSON。它是用于发送数据的纯文本数据表示语言。
它不是SOAP-ish,它的JSON。用于在JavaScript中来回传递数据。它非常轻巧。 http://en.wikipedia.org/wiki/JSON
它将一个对象传递给具有两个字符串成员的方法和查询。
什么? '{method:'fql.query',query:'SELECT name,pic_square FROM user WHERE uid ='+ response.session.uid}'不是一个字符串... – 2010-06-26 15:55:00
它不仅仅是一个字符串,它的JSON。 – 2010-06-26 16:00:48
对不起,以为他的意思是'fql.query' - 继续。 – 2010-06-26 16:41:10