मैं एक प्रकार की रूपांतरण तालिका के साथ कैनवास से संबंधित कक्षा का निर्माण कर रहा हूं। रूपांतरण तालिका उपयोगकर्ता द्वारा संपादित की जा सकती है। (वास्तव में प्रासंगिक नहीं है, लेकिन शायद आप को पता है क्यों चाहते हैं):डॉट्स के बिना एक वैरिएबल (parent.child.grandchild) का पोलैंड एक्सेस करें और ब्रैकेट्स की एक जोड़ी
cLayout = function(option) {
//obtaining the canvas (el) here
this.setup = function(option) {
t=this.table;
for (var p in t)
{
el[t[p][0]] = option[p]||t[p][1]
}
}
this.setup(option)
}
cLayout.prototype.table = {
width:[['style']['width'],"100%"],
height:['style'['height'],"100%"],
bg:[['style']['backgroundColor'],""],
position:[['style']['position'],"absolute"],
left:['style'['left'],"0px"],
top:['style'['left'],"0px"]
}
उदाहरण:
var b = new cLayout({left:'10%',width:'90%'})
रियल प्रश्न:
आम तौर पर, मैं करने के लिए el['style']['width']
का उपयोग करेंगे el.style.width सेट करें। लेकिन मैं ब्रैकेट की दूसरी जोड़ी के बिना el[something]
का उपयोग करना चाहता हूं: मैं चाहता हूं कि संपत्ति का नाम पूरी तरह से परिवर्तनीय हो (मैं भी el['innerHTML']
सेट करने में सक्षम होना चाहता हूं)। तो, क्या a[b][c]
का उपयोग किये बिना a[b]
का उपयोग करके पोते को पाने का कोई तरीका है?
पीएस बेशक, मैं eval का उपयोग नहीं करना चाहता हूँ।
यह '[[शैली'] ['चौड़ाई'], "100%"] 'समझ में नहीं आता है। यह '[' शैली ']' सरणी की 'चौड़ाई' संपत्ति तक पहुंचने का प्रयास करेगा, जो 'अपरिभाषित' है। तो आपको क्या मिलता है '[अपरिभाषित, "100%"] '। '['शैली' ['बाएं']," 0px "] के लिए समान। –
मुझे पता है। यह वही है जो मैं चाहता हूं, लेकिन यह निश्चित रूप से काम नहीं करता है। – bopjesvla