我来自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
}
答案 0 :(得分:3)
你应该
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)
答案 1 :(得分:0)
var myExtension = {
url: 'http://server.com/json.php',
init: function() {
alert( this.url );
}
}
myExtension.init();
技术上,init本身就是一个属性,只是类型函数的属性。声明一个字符串属性只需设置一个与上面相同的方法。
要在对象内引用该属性,请使用
此
答案 2 :(得分:0)
您正在使用对象表示法(想想JSON),因此没有“=”。它应该是:
instructionServers:[“http://server.com/json.php”],