在javascript中使用另一个函数内部的函数作为构造函数
Use the function inside another function as the constructor in javascript
我以这种方式构造函数,因为我需要将它作为angularjs工厂注入。然而,当我使用它来创建一个测试时,我遇到了困难。我不能在ItemModelGenerator中引用ItemModel !我不能通过使用它作为构造函数来创建它的实例!我尝试了很多很多方法,使用new关键字或调用两者,调用任一,在bot或传递参数,它们都不起作用。我很困惑……
是否有可能以某种方式使用这个ItemModelGenerator作为另一个变量的构造函数?或者,让我们说使用它内部的ItemModel来生成,但是在一个条件下,var必须在ItemModelGenerator之外,因为它是一个工厂。
我试着:
var Service = new ItemModelGenerator();
Service.ItemModel();
new ItemModelGenerator().ItemMode();
new ItemModelGenerator.ItemMode();
..etc
顺便说一下,它确实作为angularjs的工厂注入工作,它已经测试过了。感谢'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);
返回构造函数作为包装函数的结果。试一试:
var Service = new ItemModelGenerator()();
- 调用函数内部的函数
- javascript函数内部的代码用逗号而不是分号分隔
- javascript无法重新定义函数内部的全局对象
- 如何从函数内部的这个变量中获取值
- appendChild在函数外部工作,但在函数内部不工作
- 在jquery函数内部设置来自jquery函数的var;t运行
- 一个'var'在函数内部声明
- 为什么(如何)'这'从函数内部调用回调时发生更改
- 函数内部未定义的输入值
- 在Meteor中如何将数据从函数内部复制到其他模板
- 如果在构造函数内部为else,则Javascript是可选的
- 我对“;返回true"嵌套函数内部;t工作
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- javascript,将参数传递给函数内部的闭包中的回调
- 匿名自执行js函数内部的全局变量在外部仍然可用
- 使用PHP和Javascript在函数内部传递alphaneumeric值作为参数时出错
- 访问函数内部的Polymer方法
- 更改函数内部的全局变量而不调用它
- 如何在函数内部为jquery工具提示调用不同的var字符串
- 构造函数内部的事件处理