jQuery 객체 생성자-자체 리콜 메서드

빈스 브라운

저는 학교용 Jquery 게임을 구축하는 중이며 함수 끝에 setTimeout ()을 추가하여 메서드가 실행될 때 create () 자신을 회수하려고합니다 (addEnemySpeed가 무작위로 생성되어 매번 변경됨) 그러나 메서드가 호출되어 한 번만 실행되고 (smallEnemy.create ()) 작동하지 않지만 자체를 회수하지 않습니까? 나는 이것이 내 부분에 대한 단순한 감독이기를 바라고 있습니까 ?? 도움을 주셔서 미리 감사드립니다. 건배.

// OBSTACLE OBJECT CONSTRUCTOR //

function Obstacle(type, className, speed, startHealth, currentHealth, damageCause) {
  this.type = type;
  this.className = className;
  this.speed = speed;
  this.endX = -160;
  this.startHealth = startHealth;
  this.currentHealth = currentHealth;
  this.damageCause = damageCause;
  this.create = function(type, endX, speed) {
    type = this.type;
    endX = this.endX;
    speed = this.speed;
    var $obstacle = $('<div>');
    // if the obstacle is a enemy add enemies class
    if (type == 'smallEnemy' || type == 'bigEnemy') {
      $obstacle.addClass('enemies');
    }
    // add correct class name
    $obstacle.addClass(type);
    // add obstacle to playground
    $('#playGround').append($obstacle);
    // animate obstacle down x axis remove if hits destination
    $obstacle.transition({
      x: endX
    }, speed, 'linear', function() {
      $(this).remove();
    });
    setTimeout(this.create,addEnemySpeed);
  };
}

smallEnemy.create()
고양이

이것은 프로토 타입이 아닙니다. 오히려 생성자입니다. 새로운 장애물을 만들 때 전화하고 싶을 것입니다.var foo = new Obstacle(...);

function Obstacle(type, className, speed, startHealth, currentHealth, damageCause) {

  // private vars
  var timeout,
      endX = -160;

  // private methods
  function create(addEnemySpeed) {
    var $obstacle = $('<div>');

    // if the obstacle is a enemy add enemies class
    if (type == 'smallEnemy' || type == 'bigEnemy') {
      $obstacle.addClass('enemies');
    }

    // add correct class name
    $obstacle.addClass(type);

    // add obstacle to playground
    $('#playGround').append($obstacle);

    // animate obstacle down x axis remove if hits destination
    $obstacle.transition({x: endX}, speed, 'linear', function() {
      $(this).remove();
    });

    timeout = setTimeout(create, addEnemySpeed);
  }

  // I added this method so you can stop spawning this obstacle if you want
  function stop() {
    if (timeout) {
      clearTimeout(timeout);
      timeout = null;
    }
  }

  // public api (exports)
  this.type           = type;
  this.className      = className;
  this.speed          = speed;
  this.startHealth    = startHealth;
  this.currentHealth  = currentHealth;
  this.damageCause    = damageCause;

  this.create         = create;
  this.stop           = stop;
}

알았어 지금 사용하자

var smallEnemy = new Obstacle(...);

// Spawn a new enemy of this type ever 5 seconds
// Don't forget to pass addEnemySpeed
// (addEnemySpeed was undefined in your code)
smallEnemy.create(5000);

선택 사항 :stop 스폰을 중지하고 싶을 때 호출

smallEnemy.stop();

참고로 몇 가지 기본값을 정의하고 생성자에 객체를 전달하는 것을 고려할 수 있습니다. 이렇게하면 6 개의 순서가 지정된 인수를 생성자에 전달할 필요가 없습니다.

new Obstacle({type: "foo", speed: 100});

개체에 설정되지 않은 모든 키에 대해 기본값으로 대체합니다. 이것이 당신을위한 선택이라면 당신은 나보다 더 잘 알 것입니다. 내가 언급 할 줄 알았는데.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JQuery로 객체에서 자동 완성

분류에서Dev

공유 객체 유닉스 / 리눅스에서 C ++ 메서드 / 생성자보기

분류에서Dev

객체에 대한 Typescript 메서드 쿼리 문자열

분류에서Dev

계속하기 전에 객체 생성자 내부의 메서드가 완료되기를 기다리는 중

분류에서Dev

상속 WRT 체인 생성자에서 객체 생성

분류에서Dev

객체를 생성하지만 생성자가 아닌 메서드

분류에서Dev

문자열에서 객체의 JQuery 자동 완성 배열

분류에서Dev

다른 객체의 메소드로서의 자바 스크립트 객체 생성자

분류에서Dev

jQuery : ajax로드 및 js 객체 생성

분류에서Dev

생성자가 다른 메서드에서 주어진 객체 유형의 객체를 만드는 방법

분류에서Dev

노드 / 익스프레스에 객체 생성자를 넣을 디렉토리

분류에서Dev

리플렉션을 사용하여 자바에서 동적 객체 생성

분류에서Dev

자바 스크립트에서 팩토리를 사용하여 객체 생성

분류에서Dev

자바 스크립트에서 생성 된 직후 객체 메소드 호출

분류에서Dev

생성자 자체 내부에서 리플렉션 생성자 가져 오기

분류에서Dev

Jquery 객체의 객체 생성

분류에서Dev

dfm 객체 R에서 문자 분리

분류에서Dev

객체 생성자에 객체 전달

분류에서Dev

Pandas 시리즈에서 클래스 객체 생성 및 메서드 적용

분류에서Dev

문자열 객체 생성

분류에서Dev

mongoose.find () 메서드를 사용하여 생성자에서 자바 스크립트 객체 속성 설정

분류에서Dev

JavaScript에서 객체 생성자를 만드는 방법;

분류에서Dev

jquery / javascript 생성 객체

분류에서Dev

보호 된 생성자와 팩토리 메서드가있는 개체 목록에 대한 자동 고정

분류에서Dev

리터럴 문자열 메서드 대 개체 메서드

분류에서Dev

자바 스크립트 함수로서의 객체 생성자

분류에서Dev

jquery 객체에 strike () 메서드 적용

분류에서Dev

jquery 객체가있는 getAttribute 메서드

분류에서Dev

객체 생성자에서 콜백을 수행하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    JQuery로 객체에서 자동 완성

  2. 2

    공유 객체 유닉스 / 리눅스에서 C ++ 메서드 / 생성자보기

  3. 3

    객체에 대한 Typescript 메서드 쿼리 문자열

  4. 4

    계속하기 전에 객체 생성자 내부의 메서드가 완료되기를 기다리는 중

  5. 5

    상속 WRT 체인 생성자에서 객체 생성

  6. 6

    객체를 생성하지만 생성자가 아닌 메서드

  7. 7

    문자열에서 객체의 JQuery 자동 완성 배열

  8. 8

    다른 객체의 메소드로서의 자바 스크립트 객체 생성자

  9. 9

    jQuery : ajax로드 및 js 객체 생성

  10. 10

    생성자가 다른 메서드에서 주어진 객체 유형의 객체를 만드는 방법

  11. 11

    노드 / 익스프레스에 객체 생성자를 넣을 디렉토리

  12. 12

    리플렉션을 사용하여 자바에서 동적 객체 생성

  13. 13

    자바 스크립트에서 팩토리를 사용하여 객체 생성

  14. 14

    자바 스크립트에서 생성 된 직후 객체 메소드 호출

  15. 15

    생성자 자체 내부에서 리플렉션 생성자 가져 오기

  16. 16

    Jquery 객체의 객체 생성

  17. 17

    dfm 객체 R에서 문자 분리

  18. 18

    객체 생성자에 객체 전달

  19. 19

    Pandas 시리즈에서 클래스 객체 생성 및 메서드 적용

  20. 20

    문자열 객체 생성

  21. 21

    mongoose.find () 메서드를 사용하여 생성자에서 자바 스크립트 객체 속성 설정

  22. 22

    JavaScript에서 객체 생성자를 만드는 방법;

  23. 23

    jquery / javascript 생성 객체

  24. 24

    보호 된 생성자와 팩토리 메서드가있는 개체 목록에 대한 자동 고정

  25. 25

    리터럴 문자열 메서드 대 개체 메서드

  26. 26

    자바 스크립트 함수로서의 객체 생성자

  27. 27

    jquery 객체에 strike () 메서드 적용

  28. 28

    jquery 객체가있는 getAttribute 메서드

  29. 29

    객체 생성자에서 콜백을 수행하려면 어떻게해야합니까?

뜨겁다태그

보관