除了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中重载[]运算符的方法.有人知道吗?
我在想......
MyClass.operator.lookup(index)
{
return myArray[index];
}
Run Code Online (Sandbox Code Playgroud)
或者我不是在看正确的事情.
例如这段代码:
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(),但我只是想知道我是否可以避免它,因为主要对象是一种包装器,只是暂时添加一些功能(并使它更容易同时访问对象).