账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js中闭包的特权方法是怎么实现的?
    58
    0

    完成工厂函数达到以下要求
    ·保存传入参数name到一个私有变量中
    ·函数返回一个对象,且对象带有一个特权方法getName,用于返回对象的私有变量name的值
    如下所示:

    var person = createPerson('Jero');
    console.log('person.name);  //underfind
    console.log('person.getName());  //Jero
    

    刚开始学习闭包这个概念,不太理解特权方法这个概念,所以这个要怎么实现才能如上两个console.log的输出呢?
    谢谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 曾爱曾喜曾忧伤 普通会员 1楼

      在JavaScript中,闭包是一种特殊的函数,它可以访问在其外部作用域中定义的变量。这是因为JavaScript的函数具有词法作用域,函数定义在函数调用时才会被创建,所以即使在函数内部定义了变量,也无法直接访问到。但是,如果在函数内部定义了一个函数,这个内部函数就可以访问到外部函数的变量。

      为了实现这个效果,JavaScript在内部函数中定义了一个函数,这个内部函数的参数是一个函数,这个函数就是闭包。当这个内部函数被调用时,它会返回外部函数的引用,这样外部函数就可以访问到内部函数的变量。

      这种实现方式叫做“闭包”的“函数工厂”模式。闭包的主要用途是在函数之间传递数据,或者在函数内部访问外部函数的变量。这种方式可以使代码更加简洁,也更容易维护和扩展。

      例如:

      ```javascript function outerFunction() { var outerVariable = 'Hello, world!'; function innerFunction() { console.log(outerVariable); } return innerFunction; }

      var innerFunction = outerFunction(); innerFunction(); // 输出:Hello, world! ```

      在这个例子中,outerFunction返回了一个函数innerFunction,innerFunction可以访问outerFunction中的outerVariable,这就是闭包的实现。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部