javascritpt 原型链

来源:互联网 发布:java 源代码文件 混淆 编辑:程序博客网 时间:2024/06/07 07:15
// 基类var BaseCalculator = function(){this.decimalDigits = 2;};// publicBaseCalculator.prototype.add = function(x, y) {return x + y;}// publicBaseCalculator.prototype.subtract = function(x, y) {return x - y;}// 子类var Calculator = function() {this.tax = 5;};// 覆盖重写Calculator.prototype.add = function(x, y) {return x + y + this.tax;}// 实例继承Calculator.prototype = new BaseCalculator();var calc = new Calculator();console.log(calc.add(1,1));console.log(calc.decimalDigits);/* 原型继承,不让子类访问基类的属性Calculator.prototype = BaseCalculator.prototype;var calc = new Calculator();console.log(calc.add(1,1));console.log(calc.decimalDigits);// 无法访问*/// 原型链遍历从自身属性到原型链,从下向上遍历,到Object.prototype 结束。Object.prototype.bar = 1;var foo = {moo:2};for(var i in foo) {console.log(i);}// foo barfor(var i in foo) {if(foo.hasOwnProperty(i)) {console.log(i);}}// moo

2 0