JavaScript函数如何调用原型函数name.argument工作?

时间:2012-11-22 18:35:07

标签: javascript

JavaScript函数如何调用原型函数name.argument在以下程序中工作?

 function getLAdd() {
     // this sets all the variables containing positions of ball and bar with their respective ids.
     var ladd = 0;
     var pball = $("#ball");
     var pbar = $("#bar");
     var bar_position = pbar.position();
     var ball_position = pball.position();
     if (ball_position.top >= window.innerHeight - 100) {
         if (ball_position.left - 10 >= bar_position.left && ball_position.left - 10 <= bar_position.left + 100) {
             ladd = -2;
         }
         if (ball_position.left + 10 <= bar_position.left + 200 && ball_position.left + 10 >= bar_position.left + 100) {
             ladd = 2;
         }
     }
// how does getLAdd.ladd work ? Is this a type of dynamic call ?
     if (ladd == 0) {
         ladd = getLAdd.ladd;
     }
     if (ball_position.left <= 15 || ball_position.left >= window.innerWidth - 40) 
         ladd = -ladd;

     getLAdd.ladd = ladd;
     return ladd;
 }

1 个答案:

答案 0 :(得分:3)

JavaScript中的函数是对象,因此您可以向它们添加属性。

在此代码中,名为ladd的属性已添加到getLAdd函数中,并且正在此行中检索:

ladd = getLAdd.ladd;

并且正在更新此行:

getLAdd.ladd = ladd;

你可以用任何功能做同样的事情。

function f() {
       // get the property
    console.log(f.foo); // bar
}

   // add a property to the function object
f.foo = "bar";

   // get the property
console.log(f.foo); // bar

   // call the function
f();