原型与继承
来源:互联网 发布:java软件是什么 编辑:程序博客网 时间:2024/06/06 02:45
一.什么是原型或为什么会有原型;
原型是面向对象的一个概念,而在js语言是一种面向过程的语言(pop),弱型语言,是一种脚本语言;面向对象(oop)中也对一个概念叫做‘类’,故在js语言不存在类这个概念,js中为了工程的需要,可以运用代码模拟面向对象的类,也继承面向对象的继承和封装,但无法模拟面向对象的多态;那这么说什么是类呢?无论怎么说,直接上代码:
function Name() {var first = {};first.name1 = 'liu';first.name2 = 'scott';first.ability = '创建名字';return first;} var myname = Name();
类是一类事物的固有共同特征,描述一类事物;而对象是它的单个个体具有这类事物特征的;
而原型是js提供对象的属性-----prototype;基于构造函数,构造函数,见代码:
function Name(age){ this.age = 10; } var name1 = new Name();原型:是对象中的一个属性
function Name(age){this.age = 10;}Name.prototype.height='65cm';//通过类的的原型属性添加一个属性;var name1 = new Name();//通过new创建一个对象console.log(name1); 注:对象中没有找到的属性和方法,会通过原型去查找;上概念:原型是js为所有函数所创建的一个对象类型的属性,原型当中的属性和方法被所有通过这个函数所创建的对象共享;
二.原型链:
由【对象的__proto__属性】和【对象的构造函数的原型的__protp__属性】构成的链式结构称为原型链。;
不用语言解释,用代码解释:
function Name(age){this.age = 10;}Name.prototype.height='65cm';var name1 = new Name();console.log(name1)console.log(name1.__proto__);console.log(name1.__proto__.__proto__);console.log(name1.__proto__.__proto__.__proto__);
最好的解释,对原型链:
继承是与原型链的最好的创建和应用:
function father() {}father.prototype.name = 'liu';father.prototype.xuexi = function() {var num = 1;return num + 5;}var fatherSili = new father();function son() {}son.prototype.age = 19;son.prototype = fatherSili;var sonSili = new son();sonSili.name = '';继承并不能改变父级的属性和方法,而子级的属性和方法,父级无法访问;在创建原型链过程中,有一点必须注意:先创建原型链,在创建子类对象,不然这个原型链是不成功的。
阅读全文
0 0
- 类继承与原型继承
- 继承与原型链
- 原型对象与继承
- JavaScript原型与继承
- 原型与继承
- 原型链与继承
- 原型与继承
- 继承与原型链
- JavaScript原型与继承
- 继承与原型链
- 继承与原型链
- 原型与继承
- 原型与继承
- 原型与继承
- 继承与原型链
- javascript原型链与原型继承
- JavaScript 原型、原型链与继承
- 原型对象与继承(原型链)
- 关于TLS经验小结(上)
- JDBC 增删改查操作示例
- spring + redis 集群
- Android surfaceflinger(3)-DisplayDevice封装
- [luogu1108&2687][USACO4.3]Buy Low, Buy Lower(STL乱搞+高精度)
- 原型与继承
- 角色设计流程图
- c++实现一元稀疏多项式加减
- maven常见问题
- GitLab服务器经常502(阿里云搭建)
- git 常用命令
- Codeforces Round #448 (Div. 2) B,C,
- leetcode 47. Permutations II
- 数据结构-->数组