2010-09-22 2 views
3
var Card = YClass.extend({ 
// define Class Name 
className:'Card', 
// class level default options 
config:{ 
    id:'cardid', 
    container:'body', // id of container in which to render the user 
    render:false, 
    template: 'tmpl_card', // id of template used to render user 
    debug:false 
}, 
setposition:function() { 
    var i=1; 
    var xpos=10; 
    var ypos=15; 
    var recvflag=false; 
} 
); 

Как я могу назвать функцию набора позиций, которую я пытаюсь использовать Card.setposition();как я могу назвать метод класса outiside класс javascript

, но это дает мне ошибку, что setposition не определено why ??

+1

Пожалуйста, отформатируйте код немного –

ответ

2

Это не вещь jQuery, это вещь YClass. Я не знаю, что YClass есть, но я думаю, что он определяет классов, которые вы затем сделать экземпляров из:

var c = new Card(); 
c.setposition(); 

Это было бы похожи на «Simple JavaScript Inheritance» Class вещи Resig, в прототипе Class объекта или системы I describe here.

Если вы просто хотите контейнер с некоторыми функциями на нем, вы можете просто сделать это прямо:

var Card = { 
    setposition: function() { 
     alert("Hi there!"); 
    }; 
}; 
Card.setposition(); // alerts "Hi there!" 

... но я предполагаю, что вы используете YClass по причине.

1

Вы должны назвать так:

Card.prototype.setPosition(); 

ПОЧЕМУ:

В свойствах JavaScript (полей) класса хранится в класса. прототип Объект. Когда экземпляр создан в классе, этот экземпляр имеет свойства, которые находятся в Класс. прототип Объект. Это означает, что экземпляр вызывает Класс. прототип. Метод когда вы вызываете пример. Метод, он не имеет своего. И если вы хотите вызвать метод класса без создания экземпляра, вы должны вызывать его непосредственно из своего прототипом Объект.

+0

Почему вы дали мне минус? :) – Zango

Смежные вопросы