当前位置:编程学习 > JAVA >>

紧急求教。。这种js是什么写法

$package("com.qn.ui");

com.qn.ui.GroupTreeView = function (id){

this.multiSelected = true;
this.onchange = function(selNode){

if(selNode.userObject.nickname){
return;
}
if(selNode.getChildCount()>0)
selNode.clear();
this.list(selNode);
}
}
com.qn.ui.GroupTreeView.prototype = new js.ui.tree.AbstractTree() ;

com.qn.ui.GroupTreeView.prototype.includeId=0;
com.qn.ui.GroupTreeView.prototype.hasMember=false;
com.qn.ui.GroupTreeView.prototype.renderClass = com.qn.ui.GroupTreeNodeRenderer;

com.qn.ui.GroupTreeView.prototype.list = function(selNode){

var __this = this;
this.getGroup().onerror = function(msg){
alert(msg);
}
this.getGroup().onload = function(groups){
__this.fillGroups(groups, selNode);
if(__this.onload) __this.onload(groups, selNode);
}

if(selNode.userObject.groupId){
this.getGroup().list(selNode.userObject.groupId,selNode.userObject.rootTag,this.includeId);

}



com.qn.ui.GroupTreeView.prototype.fillGroups = function(groups, parentNode){

if(!parentNode)
parentNode = this.getRoot();
if(parentNode)
parentNode.clear();
var group;
for(var i=0; i<groups.length; i++){
group = groups[i];

if(!this.hasMember){
if(group.nickname){break;}
}
var node = new js.ui.tree.TreeNode(this);
node.setUserObject(group);
parentNode.add(node);

}
parentNode.expand();
}

com.qn.ui.GroupTreeView.prototype.parseText = function(responseText, parentNode){

if(responseText==""||responseText==null) 
{return;}
var __this = this;
if(!parentNode)
parentNode = this.getRoot();
this.getGroup().onerror = function(msg){
alert(msg);
}
this.getGroup().onload = function(groups){
__this.fillGroups(groups, parentNode);
}
this.getGroup().doListed(responseText);
}
com.qn.ui.GroupTreeView.prototype.group = null;

com.qn.ui.GroupTreeView.prototype.getGroup = function(){
if(!this.group){
this.group = new com.qn.io.Group();
this.addListener(810);
}
return this.group;
}


//right click
com.qn.ui.GroupTreeView.prototype.doPopupMenu = function (renderer){

if(!(this.includeId==1||this.includeId==2)){
this.popupMenu = this.getSelPopMenu();

}
}
com.qn.ui.GroupTreeView.prototype.onPopupMenu = function (renderer){
var obj=this.selNode.userObject

}
com.qn.ui.GroupTreeView.prototype.bindPopupMenu = function (){
var __this = this;
this.ui.super_oncontextmenu = js.ui.Component.default_oncontextmenu;
    this.ui.oncontextmenu = function(event, renderer){
if(!renderer)
__this.clearSelection();
__this.doPopupMenu();
return __this.super_oncontextmenu(event);
}
this.ui.ondblclick = function(event){
if(__this.popupMenu)
__this.popupMenu.hide();
}

}

com.qn.ui.GroupTreeView.prototype.getSelPopMenu = function (selNode){
if(this.selPopMenu) return this.selPopMenu;
var __this = this;

var popmenu = this.selPopMenu = new js.ui.PopupMenu();
popmenu.hide();
rootPanel.appendChild(popmenu.getUI());

var item = new js.ui.MenuItem();
item.setText(props("createROOT"));
popmenu.add(item);
item.onclick = function(){
var selGroup = __this.selNode.userObject;
if(selGroup!=null){

}
}
popmenu.addSeparator();
var item = new js.ui.MenuItem();
item.setText(props("createSub"));
popmenu.add(item);
item.onclick = function() {
__this.link();
}

var item = new js.ui.MenuItem();
item.setText(props("refresh"));
popmenu.add(item);
item.onclick = function(){
var selGroup = __this.selNode.userObject;
if(selGroup!=null){

}

}
return this.selPopMenu;
}
--------------------编程问答-------------------- 没见过。。。等待大神 --------------------编程问答-------------------- --------------------编程问答-------------------- 好长啊。。。 用的指针构造的数据结构,还有javascript 原型链。 --------------------编程问答-------------------- 什么写法没研究过,以前维护别人的项目碰到过
因为不懂,所以不敢乱改,
但有一点可以肯定,很多浏览器都不兼容这种代码,
貌似IE6中运行比较稳定 --------------------编程问答-------------------- 貌似IE6中运行比较稳定,如果这样的话 那这代码可不行  --------------------编程问答-------------------- 他们写的这代码是兼容几乎主流浏览器
--------------------编程问答-------------------- js对象写法。
例如
function a()
{
 this.fun=function()
 {
  alert("js-a类的方法");
 }
}
a.fun();
var b=new a();
a.fun; --------------------编程问答--------------------
js对象写法。
例如
function a()
{
 this.fun=function()
 {
  alert("js-a类的方法");
 }
}
a.fun();
var b=new a();
b.fun;
--------------------编程问答-------------------- 面向对象 --------------------编程问答-------------------- 这么一堆,哪一行? --------------------编程问答-------------------- com.qn.ui.GroupTreeView.prototype.hasMember

你指的是 prototype 么?

prototype 称为原型链方法,需要使用 GroupTreeView 才可以进行调用的

com.qn.ui.GroupTreeView.prototype.hasMember
com.qn.ui.GroupTreeView.hasMember

这两个是有区别的,前者相当于 Java 中的非静态的 public 方法,后者相当于 Java 中静态的 public 方法 --------------------编程问答--------------------
引用 6 楼  的回复:
他们写的这代码是兼容几乎主流浏览器


兼容个菊花
火狐谷歌打死也不兼容 --------------------编程问答-------------------- 匿名函数。。。。 --------------------编程问答-------------------- $package没用过,个人理解如下:

var Com=function(){
  this.qn=function(){
    this.ui=function(){
      this.GroupTreeView;
      ...
    }
    ...
  }
  ...
}
这里的$package的作用应该就是等同于:var com =new Com();
然后,就可以接你贴出来的代码了


另外:
com.qn.ui.GroupTreeView.prototype.fillGroups=function(){
}
com.qn.ui.GroupTreeView.fillGroups=function(){
}
这两种写法,一种是实例方法,一种是类方法。实例方法是要“实例化”之后才能调用,类方法就可以直接调用 即类名点出来。这其实跟java里面的静态方法、非静态方法差不多 --------------------编程问答--------------------  不认识。。 --------------------编程问答-------------------- 用到的东西包括但不限于 命名空间,对象(含属性, 方法作为属性)等。 --------------------编程问答-------------------- 原形  +  面向对象
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,