0
誰かがJavaScriptのための素晴らしいオブジェクトプロトタイプを手伝ってくれましたが、jQueryではそれが壊れています。オブジェクトプロトタイプ関数jQueryの中断
jquery.min.js:2キャッチされない例外TypeError:V [G] IはObject.definePropertyブロック(下記)jQueryのエラーを停止することを見出し
関数ではない.exec jQueryのでは、エラーを与え。しかし、それは動作しません。 multiparter()を呼び出すと、 "undefined"が返されます。誰でもソリューションを手助けできますか?
Object.prototype.multiparter = function(route) {
var newObj = this;
route.forEach(function(key) {
newObj = newObj[key]
});
return newObj;
};
Object.defineProperty(Object.prototype, 'multiparter',{
value : function() {},
enumerable : false
});
var mekBldr = {
mecha: {
heads: {
head01: {
cost: 0,
classification: ''
}
},
rightLimbs: {
legs: {
rightleg01: {
cost: 0,
classification: ''
}
}
},
leftLimbs: {
legs: {
leftleg01: {
cost: 0,
classification: ''
}
}
}
}
};
var part = 'heads';
var stuck2 = [part];
var part1 = 'leftLimbs';
var part2 = 'legs';
var stuck = [part1, part2];
mekBldr.mecha.multiparter(stuck2).head01.cost = 2;
//goal: mekBldr.mecha.leftLimbs.legs.leftleg01.cost = 5;
mekBldr.mecha.multiparter(stuck).leftleg01.cost = 5;
ありがとう、情報ありがとうございます。 Object.prototypeを使用して私の問題を解決すべきではないように思えます。よりよい解決策は何ですか?上のコードサンプルの一番下には、「目標」が表示されます。それが私が達成しようとしているものです。どんな助けでも大歓迎です。 – user1592980
静的関数にしましょう: 'multiparter(mekBldr.mecha、stuck2).head01.cost'メソッドではありません。ある日、独自の 'multiparter'プロパティを持つオブジェクトに遭遇し、コードが壊れてしまいます。 – Bergi
このようにしますか? 'code'function multiparter(theObj、route){ route.forEach(function {key} { theObj = theObj [key] });theObjを返します。 } 'code' – user1592980