,发布的时候还是可以替换,从而优化。 还有一种办法是,每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为是要类.函数名来调用,所以也减少了重复的可能性。
javascript面向对象中继承实现 答:我是用prototype.js extend.js扩展 然后子类中parent.initialize()… 答的不好 正确答案:
// 1. 构造器 function Animal() {}; function Mammal() {}; function Canine() {}; function Dog() {}; // 2. 原型链表 Mammal.prototype = new Animal(); Canine.prototype = new Mammal(); Dog.prototype = new Canine();
prototype.js实现的基本原理 答: 将功能封装 比如Ajax.Request,还是有判断浏览器的代码;Position这样的实现页面元素位置的计算
prototye太大,如果一个页面功能不需要这样的,自己实现,怎么做 答:首先页面、css、脚本分离之后,脚本中将整个模块功能写成一个类var Do={} 其中初始化函数init:function(){},然后最后做Do.init() 其中init会对页面上form中需要交互的元素绑定事件,比如$(’input1′).onclick=function(){}
IE、FF下面脚本的区别 答: 1.IE有outerHTML,FF没有 2.页面元素id,IE可以直接取,FF必须document.getElementById() 3.Ajax里边FF是new XMLHttpRequest,而IE是 try new ActiveXObject(’Msxml2.XMLHTTP’) try new ActiveXObject(’Microsoft.XMLHTTP’)
FF下面实现outerHTML 答:.parenet.firstChild .parent.innerHTML 这个没答好 正确答案:原理是,get:取到这个标签的tagname,然后属性循环构造成这个标签的属性 set:把字符串用insertBefore插入到这个元素前面,然后removeChild这个元素
<head> <SCRIPT LANGUAGE=”JavaScript”> <!– if(typeof(HTMLElement)!=”undefined” && !window.opera) { HTMLElement.prototype.__defineGetter__(”outerHTML”,function() { var a=this.attributes, str=”<”+this.tagName, i=0; for(;i<a.length;i++) if(a[i].specified) str+=” “+a[i].name+’=”‘+a[i].value+’”‘; if(!this.canHaveChildren) return str+” />”; return str+”>”+this.innerHTML+”</”+this.tagName+”>”; }); HTMLElement.prototype.__defineSetter__(”ou |