在这个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是新的关键字