这是Facebook开发者网站的一个片段。
<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 电话的第一个参数是什么?它是什么类型的物体?我相信第二个是回调函数吗?
答案 0 :(得分:1)
更新是对该功能的回调。它将根据“订阅”的内容执行。传入的数据是JSON。它是一种用于发送数据的纯文本数据表示语言。
它不是SOAP-ish,它的JSON。用于在javascript中来回传递数据。它非常轻巧。 http://en.wikipedia.org/wiki/JSON
它将一个对象传递给FB.api,它有两个字符串成员:method和query。
答案 1 :(得分:0)
更新是一个功能。在JavaScript中,您可以通过
定义一个函数var update = function () {
// body
};
或
function update() {
// body
}
由于函数是一等公民,您可以将它们作为参数传递,就像在FB.Event.subscribe调用中一样。
您还可以使用匿名函数定义内联函数:
FB.Event.subscribe('auth.login', function () {
// body
});
FB.api调用的第一个参数是一个对象(键值对的集合),它有两个键:'method'和'query',它们以字符串作为值。
您可以在此处阅读有关JavaScript对象表示法(JSON)的更多信息:http://json.org/
答案 2 :(得分:-1)
第一个参数只是一个字符串,看起来像一个命名空间的soap-ish事件名称。第二个确实是一个函数,必须用作某种回调。