您的位置:首页 > Web前端 > JavaScript

再谈js原型继承

2012-12-03 19:48 127 查看
js的经典就是原型继承!但是下面不是原型继承,尽管原型继承是js继承的经典,由于具有许多问题,所以可以对其加以修改

下面列举的实际上是混合继承

【今天又遇到了这个尴尬的问题,但是忘记了记在哪里?这次决定放在网上,以供参考】

<script type="text/javascript">
var Range = function(document){
this.doc = document;
}
Range.prototype = {
sayDocument:function(){
alert(this.doc);
}
}
function MyRange(a){
Range.call(this,arguments);//借用构造函数继承。优点:可以给构造函数传入自己的属性,缺点:无法获得原型链的属性。这不得累死
}

MyRange.prototype = new Range();//原型继承,可以按照原型链进行查找
MyRange.prototype.constructor = MyRange;//这个不要忘了把constructor改过来

var example = new MyRange(3);
console.log(example)//包括了该有的方法和属性,以及另外的一个属性
</script>


ps:混合继承比较实用!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: