javascript - JS函数的定义方式原理求助?
PHPz
PHPz 2017-04-11 13:13:48
[JavaScript讨论组]

var user = function() {

return {
    init: function() { //something },
    add: function() { //something },
    del: function() { //something }
    }
    }();
    
  
    调用 user.add() 
      怎么理解这种写法?
PHPz
PHPz

学习是最好的投资!

全部回复(3)
阿神
// 定义函数
function(){
    // ...
}

// 立即执行函数
function(){
    // 返回一个对象
    return {}
}()

user接收立即函数的返回值。

所有js的初学者都有过类似的问题吧,很快就习惯了

伊谢尔伦

变量user会立刻接收到函数的返回值

var user=function(){}() //这是一个立即执行函数
//而这个函数里面,你是返回了一个对象
大家讲道理

整呢么多幺蛾子,估计你要的是这个:

var user = {
    init: function() { /* something */ },
    add: function() { /* something */ },
    del: function() { /* something */ }
};

user.add();

加个括号应该就好理解了:

var user = (function() {
    return {
         init: function() { /* something */ },
         add: function() { /* something */ },
         del: function() { /* something*/ }
    };
})();

或者:

var userFun = function() {
    return {
         init: function() { /* something */ },
         add: function() { /* something */ },
         del: function() { /* something*/ }
    };
};
var user = userFun();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号