Я знаю, как петля печь объект I в javascript. Но когда я пытаюсь сделать это внутри прототипа объекта, то я получаю ошибку «undefined is not a function». Мой код нижеЗацикливание объекта в прототипе
var createObject = function(strIn) {
this.result = strIn;
}
createObject.prototype.toObject = function() {
var objData = this.result.split('&');
this.result = Object.create(null); //{}
var res = Object.create(null);
objData.forEach(function(value, index) {
var test = value.split('=')
return res[test[0]] = test[1];
});
this.result = res;
res = Object.create(null);
return this.result;
}
createObject.prototype.toString = function() {
//{ jake: 'dog', finn: 'human' }
//"jake=dog&finn=human"
var key,
objIn = Object.create(null),
returnresult = '';
objIn = this.result; //this is causing issue
console.log('obj', objIn);
console.log(typeof(objIn))
for (key in objIn) {
console.log(objIn.hasOwnProperty('key')) //trying to see wht this results in ::GIVES 'undefined is not a function error'
// if(objIn.hasOwnProperty(key)){
// returnresult += key+'='+objIn[key]+'&'
// }
}
this.result = returnresult;
returnresult = Object.create(null);
return this.result;
}
var test = new createObject('jake=dog&finn=human');
console.log(test);
console.log(test.toObject())
console.log(test);
console.log(test.toString());
console.log(test);
Результат и ошибки как ниже:
{ result: 'jake=dog&finn=human' }
{ jake: 'dog', finn: 'human' }
{ result: { jake: 'dog', finn: 'human' } }
obj { jake: 'dog', finn: 'human' }
object
solution.js:52
console.log(objIn.hasOwnProperty('key') )
^
TypeError: undefined is not a function
at createObject.toString (solution.js:52:23)
at solution.js:68:18
Это не орфографическая ошибка так что не уверен, что происходит ..
Спасибо ..
Проблема возникает в строке 51 после createObject.prototype.toString = .... for (key in objIn) { if (objIn.hasOwnProperty (key)) {// это вызывает ошибку. – Mani