相关疑难解决方法(0)

多个构造函数的JavaScript模式

我的实例需要不同的构造函数.那是什么常见模式?

javascript oop design-patterns

97
推荐指数
7
解决办法
8万
查看次数

Javascript中的方法重载

我在我的Javascript代码中使用如下方法重载.

function somefunction()
{
    //1st function
}

function somefunction(a)
{
   //2nd function
}

function somefunction(a,b)
{
   //3rd function
}

somefunction(); // function call goes here
Run Code Online (Sandbox Code Playgroud)

我不明白的是,如果我调用somefunction()javascript应该调用第一个函数,但问题是javascript实际上调用第三个函数.这是为什么?如何调用第1和第2功能?这是什么原因?有没有一种在Javascript中实现方法重载的正确方法?什么是行业标准?

javascript jquery overloading

24
推荐指数
3
解决办法
2万
查看次数

如何在JavaScript ECMA6中重载构造函数?

目的

实现一种机制,允许JavaScript ECMA6中的构造函数重载

为什么这不重复

主题为什么JavaScript ES6不支持多构造函数类?虽然类似的不一样.另一个主题仅关注使用 ECMAScript版本的构造函数重载,而本主题则侧重于ECMA6.如果您正在寻找更新的答案,那就是这个地方.

背景

我有一个带有给定构造函数的JavaScript类,我希望用户在实例化对象时能够拥有不同的构造函数.我假装的一个例子如下:

const DEFAULT_WHEEL_NUMBER = 4;
const DEFAULT_COLOR = "black";    
const DEFAULT_NAME = "myCar";

class Car{

    constructor(numberWheels, aName, aColor){
        this.wheelsNum = numberWheels;
        this.name = aName;
        this.color = aColor;
    }

    constructor(aName){
        this(DEFUALT_WHEEL_NUMBER, aName, DEFAULT_COLOR);
    }

    constructor(){
        this(DEFUALT_WHEEL_NUMBER, DEFAULT_NAME, DEFAULT_COLOR);
    }
}
Run Code Online (Sandbox Code Playgroud)

在此代码中,用户有三个可以使用的构造函数,每个构造函数都使用不同数量的参数.一个用法示例如下:

var car1 = new Car(3, "tricicle-car", "white");
var car2 = new Car("Opel"); //creates black car with 4 wheels called Opel
var car3 = new Car(); //creates a black car, …
Run Code Online (Sandbox Code Playgroud)

javascript constructor overloading constructor-overloading ecmascript-6

13
推荐指数
2
解决办法
1万
查看次数