嵌套函数作为javascript中的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌套函数作为javascript中的方法相关的知识,希望对你有一定的参考价值。

我正在努力理解javascript的基本概念。如果我在下面的第8行只使用“gear + = 1”,下面的代码似乎工作正常,但我不明白为什么当我使用“this.gear + = 1”时这不起作用。它给出了NaN的结果。谢谢。

(function bike(speed, tank, gear) {
  var i = {};
  i.speed = speed;
  i.tank = tank;
  i.gear = gear;
  i.addgear = (function() { 
    // works fine with "return gear+= 1" Why not with "this"?     
    return this.gear += 1;  
 })();

 console.log("mybike", i);   
})(120, 12, 5);   
答案

有很多方法可以实现您正在寻找的东西,包括ES2015及以上的class关键字或作为其基础的原型系统。这是一个非常简单的示例:

function bike(speed, tank, gear) {
  return {speed, tank, gear, addGear: function() {return this.gear += 1}}
}

const myBike = bike(120, 12, 5)
console.log(myBike);
myBike.addGear();
console.log(myBike)

以上是关于嵌套函数作为javascript中的方法的主要内容,如果未能解决你的问题,请参考以下文章

10个JavaScript代码片段,使你更加容易前端开发。

几个关于js数组方法reduce的经典片段

传递嵌套在片段中的 AdapterView.OnItemClickListener() 中的活动上下文 - 方法未定义

Android 嵌套片段方法

嵌套函数中的Javascript“this”指针

我无法访问 index.jsp 中的嵌套 JavaScript 函数