相关疑难解决方法(0)

构造函数可以返回哪些值以避免返回此值?

除了this使用new关键字调用构造函数之外,Javascript中的return语句可以返回一个值的具体情况是什么?

例:

function Foo () {
  return something;
}

var foo = new Foo ();
Run Code Online (Sandbox Code Playgroud)

如果我没有弄错,if something是非函数原语,this将被返回.否则something返回.它是否正确?

IOW,可以something采取什么样的价值观(new Foo () instanceof Foo) === false

javascript constructor new-operator

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

你会如何在javascript中重载[]运算符

我似乎无法找到在javascript中重载[]运算符的方法.有人知道吗?

我在想......

MyClass.operator.lookup(index)
{
     return myArray[index];
}
Run Code Online (Sandbox Code Playgroud)

或者我不是在看正确的事情.

javascript operator-overloading

74
推荐指数
9
解决办法
3万
查看次数

有没有办法捕获尝试访问不存在的属性或方法?

例如这段代码:

function stuff() {
  this.onlyMethod = function () {
    return something;
  }
}

// some error is thrown
stuff().nonExistant();
Run Code Online (Sandbox Code Playgroud)

有没有办法做PHP之类的东西__call作为对象内部的后备?

function stuff() {
  this.onlyMethod = function () {
    return something;
  }
  // "catcher" function
  this.__call__ = function (name, params) {
    alert(name + " can't be called.");
  }
}

// would then raise the alert "nonExistant can't be called".
stuff().nonExistant();
Run Code Online (Sandbox Code Playgroud)

也许我会再解释一下我在做什么.

该对象包含另一个对象,该对象具有应该可以通过此对象直接访问的方法.但是这些方法对于每个对象都是不同的,所以我不能只是路由它们,我需要能够动态地调用它们.

我知道我可以让它里面的对象成为主对象的属性stuff.obj.existant(),但我只是想知道我是否可以避免它,因为主要对象是一种包装器,只是暂时添加一些功能(并使它更容易同时访问对象).

javascript

18
推荐指数
2
解决办法
7102
查看次数