在 (B) 行中,在接受参数后执行 (A)-object 的 Grab()-method
new sg.SelectionTarget().
使用这个“new”关键字,会创建另一个对象。那是另一个 sg 实例,还是同一个 sg 对象中的另一个 SelectionTarget() 成员函数?
在行 (C) 中,创建了另一个对象。如果第一个问题的答案是“sg instance”,那么“screengrab”-line(C)中“(”和“.”之间的变量是什么意思;在line(C)中新创建的sg实例或最初的sg对象)在 (A) 行中创建?
// objects
var screengrab = {};
var sg = screengrab;//-----(A)
screengrab.Grab = function(target) {
try {
// (some code)
} catch (error) {
// (some code)
}
}
screengrab.SelectionTarget = function() {
this.contentBrowser = new screengrab.Browser(screengrab
.Browser.contentWindow());------(C)
}
screengrab.Browser = function(win) {
this.win = win;
this.doc = new screengrab.Document(win.document);
this.htmlDoc = win.document;
this.htmlWin = win.content.window;
}
screengrab.Browser.contentWindow = function() {
return window.top.getBrowser().selectedBrowser.contentWindow;
}
// After User's action, this function triggers.
sg.Grab(new sg.SelectionTarget());------(B)