我怎样才能在类javascript之外调用类的方法

时间:2010-09-22 09:14:37

标签: javascript

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();

调用设置位置函数

但它给我的错误是setposition未定义 为什么??

2 个答案:

答案 0 :(得分:2)

这不是一个真正的jQuery,它是一个YClass的东西。我不知道YClass是什么,但我的猜测是它定义了 classes ,然后你可以创建实例

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

这与Resig的“Simple JavaScript InheritanceClass内容,Prototype的Class对象或系统describe here类似。

如果您只想要一个包含某些功能的容器,您可以直接执行此操作:

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

...但我猜你正在使用YClass。

答案 1 :(得分:1)

你应该这样打电话:

Card.prototype.setPosition();

为什么:

Class 的JavaScript属性(字段)中存储在 Class prototype Object中。当创建 Class 的实例时,此实例具有 Class 中的属性。 prototype Object。这意味着当您调用 instance .method时,实例会调用 Class prototype .method,它没有自己的实例。如果你想在没有实例化的情况下调用 Class 的方法,你应该直接从它的 prototype 对象调用。