在这个JavaScript代码中,$super和$parent是什么意思?

在这个JavaScript代码中,$super和$parent是什么意思?,javascript,Javascript,我正在努力解决这个问题 为什么以下代码中的$super和$parent前缀是美元符号? dp.Class = function() { return dp.oo.create.apply(this, arguments); } dp.oo = { create: function() { var methods = null, parent = undefined, klass = function() { this.$

我正在努力解决这个问题

为什么以下代码中的
$super
$parent
前缀是美元符号?

dp.Class = function() {
  return dp.oo.create.apply(this, arguments);
}

dp.oo = {
  create: function() {
    var methods = null,
        parent  = undefined,
        klass   = function() {
          this.$super = function(method, args) { return dp.oo.$super(this.$parent, this, method, args); };
          this.initialize.apply(this, arguments);
        };

    if (typeof arguments[0] === 'function') {
      parent = arguments[0];
      methods = arguments[1];
    } else {
      methods = arguments[0];
    }

    if (typeof parent !== 'undefined') {
      dp.oo.extend(klass.prototype, parent.prototype);
      klass.prototype.$parent = parent.prototype;
    }

    dp.oo.mixin(klass, methods);
    dp.oo.extend(klass.prototype, methods);
    klass.prototype.constructor = klass;

    if (!klass.prototype.initialize)
      klass.prototype.initialize = function(){};

    return klass;
  },

  mixin: function(klass, methods) {
    if (typeof methods.include !== 'undefined') {
      if (typeof methods.include === 'function') {
        dp.oo.extend(klass.prototype, methods.include.prototype);
      } else {
        for (var i = 0; i < methods.include.length; i++) {
          dp.oo.extend(klass.prototype, methods.include[i].prototype);
        }
      }
    }
  },

  extend: function(destination, source) {
    for (var property in source)
      destination[property] = source[property];
    return destination;
  },

  $super: function(parentClass, instance, method, args) {
    return parentClass[method].apply(instance, args);
  }
};
dp.Class=function(){
返回dp.oo.create.apply(这是参数);
}
dp.oo={
创建:函数(){
var方法=null,
父项=未定义,
klass=函数(){
this.$super=function(method,args){返回dp.oo.$super(this.$parent,this,method,args);};
this.initialize.apply(this,参数);
};
if(参数类型[0]=“函数”){
parent=参数[0];
方法=参数[1];
}否则{
方法=参数[0];
}
if(父项的类型!==“未定义”){
dp.oo.extend(klass.prototype,parent.prototype);
klass.prototype.$parent=parent.prototype;
}
dp.oo.mixin(klass,方法);
dp.oo.extend(klass.prototype,methods);
klass.prototype.constructor=klass;
如果(!klass.prototype.initialize)
klass.prototype.initialize=函数(){};
返回克拉斯;
},
mixin:函数(klass、方法){
if(typeof methods.include!=“未定义”){
if(typeof methods.include=='function'){
dp.oo.extend(klass.prototype,methods.include.prototype);
}否则{
对于(var i=0;i
在JavaScript标识符中,
$
没有特殊意义。它只指示您希望它指示的任何内容。

在JavaScript标识符中,
$
没有特殊意义。它只指示您希望它指示的任何内容。

没有理由。可能是因为编写该代码的人想清楚地表明super和parent是新的关键字。

没有理由。可能是因为编写该代码的人想清楚地表明super&parent是新的关键字