原型链的两种继承方式及区别
来源:互联网 发布:facebook软件 编辑:程序博客网 时间:2024/04/29 16:32
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<script>
//创建父类构造器
function parent(){
this.x=1;
}
parent.prototype.y=2; //父类构造器原型
parent.prototype.add = function (x, y) { //为父类构造器原型添加方法
return x + y;
}
//--------------------------------------------------
//创建子类构造器
function child1(){
this.c1=1;
}
//通过Object.create(parent.prototype)进行原型链的继承只能在父类原型上查找,找不到其父类本身的非原型的属性方法
child1.prototype=Object.create(parent.prototype); //子类构造器原型为一个空对象,其原型指向自父类原型
//进行子类实例的业务操作
var c1=new child1();
console.log("c:"+c1.c1);
console.log("y:"+c1.y);
console.log("x:"+c1.x); //undefined。
//------------------------------------------------
//创建子类构造器
function child2(){
this.c2=1;
}
//通new parent()实例进行原型链的继承 不仅能在父类原型上查找,也能查找在父类本身的非原型的属性方法
var p=new parent();
child2.prototype=p; //子类构造器原型为一个父类的实例
//进行子类实例的业务操作
var c2=new child2();
console.log("c:"+c2.c2);
console.log("y:"+c2.y);
console.log("x:"+c2.x); //value:1
var totle=c2.add(3,5); //执行父类原型上的方法
console.log(totle);
</script>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<script>
//创建父类构造器
function parent(){
this.x=1;
}
parent.prototype.y=2; //父类构造器原型
parent.prototype.add = function (x, y) { //为父类构造器原型添加方法
return x + y;
}
//--------------------------------------------------
//创建子类构造器
function child1(){
this.c1=1;
}
//通过Object.create(parent.prototype)进行原型链的继承只能在父类原型上查找,找不到其父类本身的非原型的属性方法
child1.prototype=Object.create(parent.prototype); //子类构造器原型为一个空对象,其原型指向自父类原型
//进行子类实例的业务操作
var c1=new child1();
console.log("c:"+c1.c1);
console.log("y:"+c1.y);
console.log("x:"+c1.x); //undefined。
//------------------------------------------------
//创建子类构造器
function child2(){
this.c2=1;
}
//通new parent()实例进行原型链的继承 不仅能在父类原型上查找,也能查找在父类本身的非原型的属性方法
var p=new parent();
child2.prototype=p; //子类构造器原型为一个父类的实例
//进行子类实例的业务操作
var c2=new child2();
console.log("c:"+c2.c2);
console.log("y:"+c2.y);
console.log("x:"+c2.x); //value:1
var totle=c2.add(3,5); //执行父类原型上的方法
console.log(totle);
</script>
</body>
</html>
0 0
- 原型链的两种继承方式及区别
- javascript中的原型(prototype)及原型链的继承方式
- javascript中的原型(prototype)及原型链的继承方式
- js两种定义函数、继承方式及区别
- 原型的两种方式
- 基于原型链的继承方式
- JS原型链 new 与 Object.Create()区别 代码及继承的方法
- 单例模式的两种实现方式及区别
- linux 脚本执行的两种方式及区别
- linux脚本执行的两种方式及区别
- Android加载布局文件的两种方式及区别。
- Java—String的两种赋值方式及区别
- Java基础--多线程的两种实现方式及区别
- 注册广播接收者两种方式的区别,及优缺点
- Android加载布局文件的两种方式及区别
- 注册广播接收者两种方式的区别,及优缺点
- 注册广播接收者两种方式的区别,及优缺点
- Linux脚本执行的两种方式及区别
- 俞洪敏:当你一无所有的时候是上帝帮你倒空了垃圾
- 浅谈Django的Q查询以及AngularJS的Datatables分页插件
- 在MacOSX上安装Java环境
- sleep(),wait(),yield()和join()方法的区别
- 您知道这是什么的,对吧!
- 原型链的两种继承方式及区别
- 为什么要使用叶脊(leaf-spine)拓扑网络?
- MySql 自造自增序号
- Android WebView 内核适配——WebKit 转 chromium
- 基于使用学习排序算法的Web服务学习的个性化的决策战略
- 华为内部如何实施微服务架构?基本就靠这5大原则
- 关于cocos2dx-lua打包apk遇到的download gradle问题
- file
- Lintcode: 复制带随机指针的链表