function formAttributeFactory() {
//var fieldTypes;
var service = {
setFieldTypes: setFieldTypes,
outSide1: outSide1,
outSide2: outSide2,
fieldTypes:"1"
};
return service;
function setFieldTypes(fieldTypes) {
this.fieldTypes = fieldTypes;
}
function _add(){
console.log(this.fieldTypes);
var fieldTypes = this.fieldTypes;
return fieldTypes[0];
}
function outSide1() {
console.log(this.fieldTypes);
}
function outSide2() {
var a = _add();
console.log(this.fieldTypes);
}
}
var obj = new formAttributeFactory();
obj.setFieldTypes([1,2,3]);
obj.outSide1();
console.log("-----");
obj.outSide2();
代码中执行outSide1()能输出内容,执行outSide2()会有错误。我想正常的输出fieldTypes内容,请问改如何改进。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
_add在调用时里面的this指向不对,所以console.log(this.fieldTypes);是undefined将
修改成
要不然_add()方法内的this指向会出现错误。
你的代码问题是: