js 的 匿名函数该怎样从外部调用?

;!function(win, undefined){
xxim.popchatbox = function(othis){
    var node = xxim.node, dataId = othis.attr('data-id'), param = {
        id: dataId, //用户ID
        type: othis.attr('type'),
        name: othis.find('.xxim_onename').text(),  //用户名
        face: othis.find('.xxim_oneface').attr('src'),  //用户头像
        href: 'profile.html?user=' + dataId //用户主页
    }, key = param.type + dataId;
    if(!config.chating[key]){
        xxim.popchat(param);
        config.chatings++;
    } else {
        xxim.tabchat(param);
    }
    config.chating[key] = param;
    
    var chatbox = $('#layim_chatbox');
    if(chatbox[0]){
        node.layimMin.hide();
        chatbox.parents('.xubox_layer').show();
    }
};
}(window);
阅读 5.6k
2 个回答

如果xxim变量在全局作用域中被定义可以直接调用xxim.popchatbox方法就可以了, 否则通过将xxim暴露到全局作用域来进行外部访问。

;!function(win, undefined){
var xxim = {};
xxim.popchatbox = function(othis){
    // do something
};
window.xxim = xxim
}(window);

这不是已经调用了吗?匿名函数只是为了形成一个闭包,防止局部变量外泄

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题