gpt4 book ai didi

javascript - 使用另一个函数中的函数作为javascript中的构造函数

转载 作者:行者123 更新时间:2023-11-30 09:59:37 25 4
gpt4 key购买 nike

我以这种方式构造函数,因为我需要将它作为 angularjs 工厂注入(inject)。然而,当我用它来为它创建测试时,我遇到了困难。我无法在 ItemModelGenerator 中引用 ItemModel!我不能通过将它用作构造函数来创建它的实例!我尝试了很多方法,使用 new 关键字或同时调用两者,调用其中之一,在 bot 中传递参数,或者两者都不起作用。我很困惑……

是否有可能以某种方式使用此 ItemModelGenerator 作为另一个 var 的构造函数?或者,假设使用它里面的 ItemModel 来生成,但是在一个条件下,当然,var 必须在 ItemModelGenerator 之外,因为它是一个工厂。

我试过:

var Service = new ItemModelGenerator();
Service.ItemModel();

new ItemModelGenerator().ItemMode();

new ItemModelGenerator.ItemMode();

..etc

顺便说一句,它确实作为一个 angularjs 工厂注入(inject)工作,它已经过测试。

谢谢

'use strict';
function ItemModelGenerator() {
function ItemModel(inputItem) {
var defaults = {
id:'na',
name:'na'
};
var location = inputItem ? inputItem : { defaults };
this.id = location.id;
this.name = location.itemName ? location.itemName : location.name;
this.itemIsReal = this.isReal(this.id);
}

ItemModel.prototype.isReal = function(id) {
return id !== false ? true : false;
};

return ItemModel;
}

最佳答案

当您调用 ItemModelGenerator 时,您正在从 ItemModelGenerator 返回 ItemModel。所以你得到的一个ItemModel:

var ItemModel = ItemModelGenerator();
var instance = new ItemModel();
alert(instance.name);

关于javascript - 使用另一个函数中的函数作为javascript中的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32356318/

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