js编程中遇到的问题

A.http://www.cnblogs.com/vilyLei/archive/2012/03/03/2378182.html

B.

4. 如果js的一个类中, 没有用定义变量的时候, 忘记写 var

   例如:

   function MovieClip(){

    var totFrames = 0;

  name = "mc";

   };

   那么这个类中的 name 在创建多个实例的时候就会变为全局变量,这时候就有问题了。

5.一个 js对象 this 关键字 的使用注意:

  js对象没有 this 硬性绑定, 所以对于一个方法(函数)而言, 其隶属余谁, 其内部所使用的this 就指向谁。

  不会唯一的指向方法初始定义位置的 this 所表示的对象

      例如:     function Ship(){

           this.name = "ship";

           this.getName = function(){

             return this.name;

           };

         };

         function Car(){

           this.name = "car";

         };

         创建对象:

         var ship = new Ship();

         var car = new Car();

         如果这么做:  car.getName = ship.getName

         那么这时候调用:  var ns = ship.getName();

         ns 的值是 "car" 而不是 "ship"

         所以再写类似于这样使用方式(例如回调函数)的方法的时候,要注意这一点。

         如果想要 方法内 严格访问到这个方法原来定义时候所在的对象,要这么写:

         function Ship(){

           this.name = "ship";

           var _this = this;

           this.getName = function(){

             return _this.name;

           };

         };

         

posted @ 2013-01-14 16:35  vily_雷  阅读(182)  评论(0)    收藏  举报