我来自 OOP 语言(Java、C# 和 PHP)。我只是在 Javascript 中做一些 OOP,并且对如何定义属性感到非常困惑。下面的代码基于 Mozilla 代码示例,与我正在使用的代码示例相同。我还包括了我认为应该声明属性的方式,但似乎不起作用。
var myExtension = {
// This is how I thought it'd be done
this.instructionServers = new Array(
"http://server.com/json.php",
),
init: function() {
// The event can be DOMContentLoaded, pageshow, pagehide, load or unload.
if(gBrowser) {
gBrowser.addEventListener("DOMContentLoaded", this.onPageLoad,false);
}
},
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget; // doc is document that triggered the event
var win = doc.defaultView; // win is the window for the doc
// Skip frames and iFrames
if (win.frameElement) return;
// Code removed
}
最佳答案
你应该有
var myExtension = {
instructionServers: ["http://server.com/json.php"],
// ...
};
或者,您也可以直接在 JavaScript 中分配属性,如下所示
myExtension.instructionServers = ["http://server.com/json.php"];
这将使 instructionServers
成为 myExtension
的数组属性。然后您可以通过以下方式获取属性的值
myExtension.instructionServers
或
myExtension['instructionServers']
顺便说一句,请注意,在 JavaScript 中您可以使用方便的数组文字。
['hello', 3]
相当于更冗长和不鼓励的
new Array('hello', 3)
关于javascript - OO JavaScript。属性(property)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8128509/