function Team(){
var obj = {};
obj.test.init();//疑惑 为什么obj可以调用 只要加入原型链任何对象都可以调用?
}
Team.prototype={
test:{
init:function(){
alert("ssss");
}
}
}
var obj = {};
obj.test.init();//疑惑 为什么obj可以调用 只要加入原型链任何对象都可以调用?
}
Team.prototype={
test:{
init:function(){
alert("ssss");
}
}
}
function Team(){
}
Team.prototype={
test:{
init:function(){
alert("ssss");
}
}
}
var obj = new Team();
obj.test.init();
</script>LZ的代码好奇怪,应该是这样吧
function Team(){
var obj = this;
obj.test.init();//疑惑 为什么obj可以调用 只要加入原型链任何对象都可以调用?
}
Team.prototype={
test:{
init:function(){
alert("ssss");
}
}
}
要么你的代码没给全,要么你的代码就是忽悠人的.function Team(){
var obj = {};
obj.test.init();//疑惑 为什么obj可以调用 只要加入原型链任何对象都可以调用?
}
Team.prototype={
test:{
init:function(){
alert("ssss");
}
}
}
你这里的
obj.test.init()
完全跟下面的原型搭不上边的
var obj = {},div = document.createElement('div');
div.className ='activeDiv';
extend(obj,arguments.callee.prototype,options||{});
div.style.top=obj.top+'px';
div.style.left=obj.left+'px';
obj.drag.init(div)
return div;
}
DeskTop.prototype={
drag :{
elem : null,
zindex : 0,
options : {},
init : function(){
each(arguments,function(i,elem,oThis){
addListener(elem,'mousedown',BindAsEventListener(oThis,oThis.start,elem));
},this);
},
start : function(e,elem){
var elem=this.elem = elem;
elem.style.zIndex=++this.zindex;
this.x = e.clientX - elem.offsetLeft ;
this.y = e.clientY - elem.offsetTop;
this.marginLeft = parseInt(currentStyle(elem).marginLeft)||0;
this.marginTop = parseInt(currentStyle(elem).marginTop)||0;
Sys.ie?elem.setCapture():e.preventDefault();
addListener(document,"mousemove",BindAsEventListener(this,this.move));
addListener(document,"mouseup",Bind(this,this.up));
this.options.callbackmove&&this.options.callbackmove(this.elem);
},
move : function(e){
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
var iLeft = e.clientX - this.x,iTop = e.clientY - this.y;obj = this.elem;
obj.style.left = iLeft - this.marginLeft + "px";
obj.style.top = iTop - this.marginTop + "px";
this.options.callbackmove&&this.options.callbackmove(this.elem);
},
up : function(){
removeListener(document,'mousemove');
removeListener(document,'mouseup');
Sys.ie&&this.elem.releaseCapture();
this.options.callbackup&&this.options.callbackup(this.elem);
}
}
}
这是源码
这里arguments.callee指的就是DeskTop
既然他继承了他的原型,obj当然可以有DeskTop所有的属性和方法了