【问题标题】:Need to know which is the correct way of implement constructor function [duplicate]需要知道哪种是实现构造函数的正确方法[重复]
【发布时间】:2016-10-18 02:49:31
【问题描述】:

需要从这两个选项中知道哪个是实现构造函数的正确方法。

var Dog=function(name,bread)
{
    return {

        name:name,
        bread:bread

    }

}

function Dog(name,bread)
{
    var new_object= this;

    new_object.name=name;
    new_object.bread=bread;
}

【问题讨论】:

  • 答案当然是,视情况而定。两者都很好,尽管第一个将被命名为“工厂函数”而不是构造函数。
  • 第一个是我们所说的工厂,而不是构造函数。第二个使用完全不必要的implicitly global 变量而不是this
  • sn-ps 中没有构造函数实现。
  • @Bergi,更正了添加 var 的错字。
  • @all ,这个问题的原因是,遇到了这两种构造函数的方法,它们做同样的事情,需要知道每种方法的意义。 Intent 是一个非常了解 javascript 的人可以指导我。如果这个问题听起来很愚蠢,请原谅。

标签: javascript


【解决方案1】:

这不是在 JavaScript 中做到这一点的一种正确方法。请参阅此答案以查看可用于在 JavaScript 中以面向对象方式编程的不同模式: https://stackoverflow.com/a/30148923/1566187

【讨论】:

  • 感谢参考
【解决方案2】:

这取决于你想用它做什么,但如果你正在寻找一个简单的构造函数,我建议

function dog(name,breed) {
    this.name = name;
    this.breed = breed;
}

通过这种方式,您可以使用该构造函数轻松创建新对象:

var Dog = new dog("Jacky", "Corgi");
var Puppy = new dog("T-Rex", "Yorkshire");

希望这会有所帮助。 :)

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2012-10-06
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多