gpt4 book ai didi

JavaScript 对象创建模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:27:37 27 4
gpt4 key购买 nike

我在这里读了一篇文章:

http://javascriptweblog.wordpress.com/2010/03/16/five-ways-to-create-objects/

它讲述了创建对象的五种方法。但我的问题是他的方式之一 (3) 是:

myApp.Notepad = function(defaultFont) {
var that = {};
that.writeable = true;
that.font = defaultFont;
that.setFont = function(theFont) {
that.font = theFont;
}
return that;
}

myApp.notepad1 = myApp.Notepad('helvetica');

根据作者的说法,我们可以在需要多个实例时使用它,我们可以使用从 3(以上)到 5 的任何模式。

但据我所知,我们确实需要使用 this 关键字来反射(reflect)新创建的实例并仅引用该实例。然而,在上面,作者使用了 that 对象而不是 this 并且上面也没有使用 new 关键字。它将如何应用于多个对象实例?它本质上与使用 this 相同吗?

最佳答案

在您的示例中,that 是由此行创建的新对象:

var that = {};

然后该函数继续设置该对象的属性。

另一方面,this 与构造函数一起使用——当使用 new 调用时,会自动创建一个新对象并将其作为 传递给函数>这个。同样的例子可以写成:

myApp.Notepad = function(defaultFont) {
this.writeable = true;
this.font = defaultFont;
this.setFont = function(theFont) {
this.font = theFont;
}
}

myApp.notepad1 = new myApp.Notepad('helvetica');

关于JavaScript 对象创建模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9372758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com