相关疑难解决方法(0)

即使忘记了"新",我应该何时自动创建一个对象?

我们假设我有以下对象构造函数:

function Foo(bar) {
    this.bar = bar;
}
Run Code Online (Sandbox Code Playgroud)

如果我在没有new关键字的全局范围内运行该函数,那么bar将在以下任何范围内设置Foo():

var foo = Foo(42);
console.log(bar); // 42
console.log(foo.bar); // ERROR
Run Code Online (Sandbox Code Playgroud)

所以我的想法是做这样的事情:

function Foo(bar) {
    if(!(this instanceof Foo)) {
        // return a Foo object
        return new Foo(bar);
    }
    this.bar = bar;
}
Run Code Online (Sandbox Code Playgroud)

这样,如果我做的new Foo(42) 还是 Foo(42),它会始终返回一个Foo对象.

这是有史以来一个好主意?如果是的话,何时?何时(和为什么)避免这种技术是明智的?

javascript object

16
推荐指数
2
解决办法
1142
查看次数

正确的javascript继承

我一直在阅读很多关于javascript中"继承"的文章.其中一些使用,new而其他人推荐Object.Create.我读的越多,我就越困惑,因为它似乎存在无穷无尽的变体来解决继承问题.

有人可以向我展示最受欢迎的方式(如果有的话,还是事实上的标准)?

(我想有一个基础物体Model,我可以延伸RestModelLocalStorageModel).

javascript

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

标签 统计

javascript ×2

object ×1