function bb_graphics_GraphicsContext(){
Object.call(this);
this.bbdevice=null;
this.bbmatrixSp=0;
this.bbix=1.000000;
this.bbiy=0;
this.bbjx=0;
this.bbjy=1.000000;
this.bbtx=0;
this.bbty=0;
this.bbtformed=0;
this.bbmatDirty=0;
this.bbcolor_r=0;
this.bbcolor_g=0;
this.bbcolor_b=0;
this.bbalpha=0;
this.bbblend=0;
this.bbscissor_x=0;
this.bbscissor_y=0;
this.bbscissor_width=0;
this.bbscissor_height=0;
this.bbmatrixStack=new_number_array(192);
}
Run Code Online (Sandbox Code Playgroud)
什么Object.call(this)意思?
Pau*_*uno 10
JavaScript中的函数是完整的对象.当它们作为参数传递给另一个函数时,它们也不会保留它们的范围.那么,在下面的代码中......
var obj1 = {
property1: "blah",
method1: function () {
alert(this.property1);
// do stuff
}
};
function func1 (passedFunction) {
passedFunction();
// do other stuff
}
func1(obj1.method1);
Run Code Online (Sandbox Code Playgroud)
... func1会调用obj1.method1,但它不会alert是obj1's 的值property1,因为我们所做的只是传递函数对象,而不是它的this上下文.这就是call和apply进来,他们让你注入范围,讲的意思是什么功能this会.以下示例有效:
var obj1 = {
property1: "blah",
method1: function () {
alert(this.property1);
// do stuff
}
};
function func1 (passedObject, passedFunction) {
passedFunction.call(passedObject);
// do other stuff
}
func1(ob1, obj1.method1);
Run Code Online (Sandbox Code Playgroud)
现在,我们obj1.method1通过调用强制或明确地告诉它的上下文是什么call,并将它用作传递给它的对象this.
call并且apply几乎完全相同,除了它们如何处理被调用函数的附加参数.有关更多信息,请参阅MDN上的这些文章:call,apply和Function.
所有这些都被说bb_graphics_GraphicsContext成了,是一个构造函数.(您可能已经猜到了.)您可以使用new关键字来调用它var obj1 = new bb_graphics_GraphicsContext();.当它到达功能的第1行,它需要的this对象,并调用通用Object的构造,明确地注入新的对象this(在bb_graphics_GraphicsContext构造函数)作为this所述的Object构造.我假设这个函数/构造函数的编写者这样做是为了确保新创建的对象bb_graphics_GraphicsContext获取基础的所有基本方法Object.但我不知道为什么这是必要的,就好像你bb_graphics_GraphicsContext用new关键字调用它会自然地抓住所有这些属性.
Tom*_*rdt -2
每个 JavaScript 函数都有一个toString(),call()和apply()。
在odetocode.com 文章中了解有关它们的更多信息