Javascript:返回 NAN 的实例方法

标签 javascript methods javascript-objects nan

我在使用以下代码时遇到一些问题:

var num_passengers;


function vehicleConstructor(name, num_wheels, num_passengers)
{
    var vehicle = {};
    vehicle.name = name;
    vehicle.num_wheels = num_wheels;
    vehicle.num_passengers = num_passengers;

    vehicle.makenoise = function() {

    }
    return vehicle;
}

var bus = vehicleConstructor("bus", 5, 10);

bus.pickUpPassengers = function(toPickUp){
    num_passengers += toPickUp;
    return num_passengers;
} 


 bus.pickUpPassengers(5);

我为 pickUpPassengers() 添加了一个全局 num_passengers 以避免它未定义。

但是,我仍然收到总线实例的 pickUpPassegers 方法的 NAN。

这是范围还是定义的问题?

最佳答案

只是查找当前实例的一个小问题。您只需使用“this”定义 num_passengers 所需的实例即可。

此外,这样您就不需要 num_passengers 的全局变量,这意味着您可以同时拥有多个实例(汽车、公共(public)汽车和摩托车)。这将有可能避免 future 的问题。

function vehicleConstructor(name, num_wheels, num_passengers)
{
    var vehicle = {};
    vehicle.name = name;
    vehicle.num_wheels = num_wheels;
    vehicle.num_passengers = num_passengers;

    vehicle.makenoise = function() {

    }
    return vehicle;
}

var bus = vehicleConstructor("car", 5, 10);

bus.pickUpPassengers = function(toPickUp){
    this.num_passengers += toPickUp;
    return this.num_passengers;
} 

关于Javascript:返回 NAN 的实例方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37708092/

相关文章:

javascript - 反向填充对象

Javascript 用于网络存储

带有 POST 数据的 Javascript XMLHttpRequest 上传文件

java - 如何创建可通过所有方法访问的公共(public)数组,但由用户输入确定其大小?

javascript - Cytoscape.js - 圆形布局

java - 如何创建返回字符串长度的用户定义方法?

javascript - 使用方法修改对象属性

javascript - 当我需要一个复合键来区分它时,如何创建一个不同的 javascript 对象列表?

javascript - Jquery onClick 函数在 React 中未定义

javascript - 将 csurf 与 react 服务器一起使用