Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oojavascript。物业问题_Javascript - Fatal编程技术网

oojavascript。物业问题

oojavascript。物业问题,javascript,Javascript,我来自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"

我来自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"];
这将使
instructionserver
成为
myExtension
的数组属性。然后可以使用

myExtension.instructionServers

另外,请注意,在JavaScript中,您可以使用方便的数组文本

['hello', 3]
相当于更加冗长和气馁

new Array('hello', 3)
你应该

var myExtension = {
    instructionServers: ["http://server.com/json.php"],

    // ...

};
或者,您也可以直接在JavaScript中分配属性,如

myExtension.instructionServers = ["http://server.com/json.php"];
这将使
instructionserver
成为
myExtension
的数组属性。然后可以使用

myExtension.instructionServers

另外,请注意,在JavaScript中,您可以使用方便的数组文本

['hello', 3]
相当于更加冗长和气馁

new Array('hello', 3)
从技术上讲,init本身就是一个属性,只是一个function类型的属性。要声明字符串属性,只需按上述方法设置一个字符串属性

要在对象内部引用该属性,请使用

这个

从技术上讲,init本身就是一个属性,只是一个function类型的属性。要声明字符串属性,只需按上述方法设置一个字符串属性

要在对象内部引用该属性,请使用

这个


您使用的是对象表示法(想想JSON),因此没有“=”。应该是:


指令服务器:[”http://server.com/json.php“],

您使用的是对象表示法(想想JSON),因此没有“=”。应该是:


指令服务器:[”http://server.com/json.php“],

真正摸索JavaScript的
这个
是理解语言的关键。@AutoSponge--
这个
总是有价值的。如果您在全局范围内,则它是全局对象(web浏览器中的DOMWindow),您不能在变量定义中使用
this
来引用开始定义的对象@divad12在变量定义中有正确的方法来实现这一点。JavaScript也是一种OO语言。。。只需说:)真正摸索JavaScript的
这个
是理解语言的关键。@AutoSponge--
这个
总是有价值的。如果您在全局范围内,则它是全局对象(web浏览器中的DOMWindow),您不能在变量定义中使用
this
来引用开始定义的对象@divad12在变量定义中有正确的方法来实现这一点。JavaScript也是一种OO语言。。。只是说:)对象文本不应该与JSON混淆。它们看起来很相似,但却是两个不同的东西。我并不是指字面上的意思,而是指符号。抱歉,应该更具体一点。对象文字不应该与JSON混淆。它们看起来很相似,但却是两个不同的东西。我并不是指字面上的意思,而是指符号。对不起,应该更具体一点。