2.4 调用继承法 调用继承的本质是,在子类的构造器中,让父类的构造器方法在子类的执行上下文上执行,父类构造器方法上所有通过 this 方式操作的内容实际上都都是操作的子类的实例化对象上的内容。因此,这种做法仅仅为了减少重复代码的编写。 复制代码 代码如下: function parentClass() { // private field var x = "I"m a parentClass field!"; // private method function method1() { alert(x); alert("I"m a parentClass method!"); } // public field this.x = "I"m a parentClass object field!"; // public method this.method1 = function() { alert(x); alert(this.x); method1(); } } parentClass.prototype.method = function () { alert("I"m a parentClass prototype method!"); }
parentClass.staticMethod = function () { alert("I"m a parentClass static method!"); }
function subClass() { // inherit parentClass.call(this);
// private field var x = "I"m a subClass field!"; // private method function method2() { alert(x); alert("I"m a subClass method!"); } // public field this.x = "I"m a subClass object field!"; // public method this.method2 = function() { alert(x); alert(this.x); method2(); } this.method3 = function() { method1(); } }
这样的函数,但是你仍然可以再调用它是带入任意多个参数,当然,参数类型也是任意的。至于是否出错,那是这个函数中所执行的内容来决定的,javascript 并不根据你指定的参数个数和参数类型来判断你调用的是哪个函数。 因此,要定义重载方法,就不能像强类型语言中那样做了。但是你仍然可以实现重载。就是通过函数的 arguments 属性。例如: 复制代码 代码如下: function add() { var sum = 0; for (var i = 0; i < arguments.length; i++) { sum += arguments[i]; } return sum; }