Js中面向对象编程之继承的几种方式及理解
来源:互联网 发布:linux exec < > 编辑:程序博客网 时间:2024/05/17 18:47
window.onload = initall;function initall(){ var p = new Person("James","man") p.sayHello(); p.say(); //Person.show(); var d = new Developer("Tom", "mail", "dev"); d.say(); d.job(); /* for(var attr in Person.prototype){ Tester.prototype[attr] = Person.prototype[attr]; } */ var t = new Tester("Jane","test dept...."); t.sayHello(); t.test(); t.saySex();}function Person(name,sex){this.name = name;this.sex = sex;var privateObj = "privateInfo";//js中的私有变量this.say = function(){console.log("say==",privateObj);}}/* js中设置静态变量和静态方法Person.staticObj = "staticInfo";Person.show = function(){console.log("show==",this.staticObj);} *//* sayHello 为js重的成员方法 */Person.prototype.sayHello = function(){console.log("sayHello name==",this.name);}//方法yi 使用call方法function Developer(name,sex,dept){Person.call(this,name,sex);this.dept = dept;this.job = function(){console.log("job==",this.dept);}}//使用call方法的弊端是浪费资源,每次new 一个子对象都会调用一遍call方法//方法二 使用原型prototypefunction Tester(name,dept){this.name = name;this.dept = dept;this.test = function(){console.log("test==",this.dept);}}Tester.prototype = new Person();//原型继承也有弊端,//一是子类通过prototype定义方法会覆盖父类同名方法,//二是父类构造函数无法带参数//例Tester.prototype = new Person(this.name);//子类实例化的对象是取不到父类name值的Tester.prototype.sayHello = function(){//会覆盖父类Person重的sayHelloconsole.log("tester ... sayhello");}//解决办法是遍历父类中的属性,如果子类中有和父类同名的方法 则父类方法赋值给子类for(var attr in Person.prototype){ Tester.prototype[attr] = Person.prototype[attr]; }
0 0
- Js中面向对象编程之继承的几种方式及理解
- js中面向对象(创建对象的几种方式)
- js中创建对象和继承的几种方式
- js 面向对象的几种方式
- js面向对象的几种方式。
- 深入理解js面向对象之继承
- JS面向对象编程之继承
- JS面向对象之常见创建对象的几种方式
- JavaScript对象之面向对象的三种继承方式
- js对象继承的实现的几种方式
- js面向对象编程的继承问题
- js 的几种面向对象的方式
- 面向对象之继承的理解
- 理解继承(一):JS面向对象编程(封装)
- [JavaScript面向对象编程指南]-深入理解JavaScript默认的继承方式——原型链
- js中面向对象的继承
- 面向对象的编程之继承
- js面向对象的编程理解
- HDU 1757 矩阵构造
- Phpstorm如何新建项目在共享文件夹中
- java IO 操作
- ACM_Tarjan
- 获取当前时间字符串
- Js中面向对象编程之继承的几种方式及理解
- 一个IO的传奇一生(12)-- 磁盘阵列1
- C++primer plus第六版课后编程练习答案4.9
- 50种方法优化SQL Server数据库查询
- 伪随机函数整理及使用
- const的用法
- iBeacon使用
- Delphi New,Getmem,ReallocMem联系与区别
- JQ 常用方法