相关疑难解决方法(0)

如何在javascript中重载函数?

经典(非js)重载方法:

function myFunc(){
 //code
}

function myFunc(overloaded){
 //other code
}
Run Code Online (Sandbox Code Playgroud)

Javascript不会让同一个名称定义多个函数.因此,这样的事情出现了:

function myFunc(options){
 if(options["overloaded"]){
  //code
 }
}
Run Code Online (Sandbox Code Playgroud)

除了传递带有重载的对象之外,javascript中的函数重载是否有更好的解决方法?

传入重载会很快导致函数变得过于冗长,因为每个可能的重载都需要条件语句.使用函数来完成//code这些条件语句的内部可能会导致范围棘手的情况.

javascript

94
推荐指数
5
解决办法
9万
查看次数

JavaScript继承和构造函数属性

请考虑以下代码.

function a() {}
function b() {}
function c() {}

b.prototype = new a();
c.prototype = new b();

console.log((new a()).constructor); //a()
console.log((new b()).constructor); //a()
console.log((new c()).constructor); //a()
Run Code Online (Sandbox Code Playgroud)
  • 为什么不为b和c更新构造函数?
  • 我做遗传错了吗?
  • 更新构造函数的最佳方法是什么?

此外,请考虑以下内容.

console.log(new a() instanceof a); //true
console.log(new b() instanceof b); //true
console.log(new c() instanceof c); //true
Run Code Online (Sandbox Code Playgroud)
  • 鉴于这(new c()).constructor等于a()Object.getPrototypeOf(new c())a{ },怎么可能instanceof知道这new c()是一个实例c

http://jsfiddle.net/ezZr5/

javascript inheritance constructor instanceof

36
推荐指数
3
解决办法
9428
查看次数

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万
查看次数