function human(name,tall){
this.name=name;
this.tall=tall;
this.toSleep=function(){
alert('no sleep');
}
} human.prototype.toSleep=function(){
alert('sleep');
} var meimei=new human("meimei",160);
var xiaoqiang=new human("xiaoqiang",170); //会先去找meimei这个对象中是否含有toSleep方法
//如果没有就会去原型中即human构造器找,这样两个就会相等meiemi.toSleep()==xiaoqiang.toSleep()为true
meiemi.toSleep();
情况1:
function animal(legs){
this.leg=legs;
} function human(name,tall){
this.name=name;
this.tall=tall;
}
human.prototype=new animal(2); var meimei=new human("meimei",160);
var xiaoqiang=new human("xiaoqiang",170); meimei.leg 情况2:
function animal(legs){
this.leg=legs;
} function human(name,tall){
this.name=name;
this.tall=tall;
} human.prototype.head=1;
human.prototype={leg:2}; //整个对象被替换
human.prototype.leg=2; var meimei=new human("meimei",160);
var xiaoqiang=new human("xiaoqiang",170); meimei.leg 情况3:call()以及apply()
function sleep(){
alert(this.name+"to Sleep");
}
sleep(); ----window对象调用 **********************************
var meiemi={
name:'meiemi',
sleep:sleep
}
meimei.sleep(); ----meimei to Sleep **********************************
var meiemi={
name:'meiemi'
}
sleep.call(meimei); ----meimei to Sleep ***********************************
function sleep(time){
alert(time+":"+this.name+"to Sleep");
}
var meiemi={
name:'meiemi'
}
sleep.call(meimei,"21:00"); ----传参方式不一样
sleep.apply(meimei,["21:00"]) 情况4:
类式继承:
function Super(){
this.colors=["red","blue"]; //this为Super.call(this)传入的对象,该对象返回的结果就有一个colors
}
function Sub(){
//Super方法的执行环境改成了this
//this是new Super是创建的对象,最后被返回的对象
Super.call(this);
} ***********************************
原型式继承:
function obj(o){
function F(){}
F.prototype=o; //new了一个对象,但原型指向o
return new F();
}
var box={
name:'zhang',
arr:['borther','sister']
};
var b1=obj(box); //没有new了,在方法中内部创建了
alert(b1.name);
**********************************

js-原型以及继承小案例的更多相关文章

  1. 彻底弄懂JS原型与继承

    本文由浅到深,循序渐进的将原型与继承的抽象概念形象化,且每个知识点都搭配相应的例子,尽可能的将其通俗化,而且本文最大的优点就是:长(为了更详细嘛). 一.原型 首先,我们先说说原型,但说到原型就得从函 ...

  2. js原型链+继承 浅析

    名称:    prototype--原型对象    __proto__--属性 原型链与继承网上搜索定义,看起来挺绕的 .先说继承: 所有的对象实例都可以共享原型对象包含的属性和方法  例如一个实例A ...

  3. [js]js原型链继承小结

    这是之前总结的, 发现有很多的毛病,就是重点不突出,重新翻看的时候还是得耗费很长时间去理解这玩意. js中的继承 js中什么是类 1,类是函数数据类型 2.每个类有一个自带prototype属性 pr ...

  4. js原型链继承的傻瓜式详解

    本文争取用最简单的语言来讲解原型链继承的OOP原理 0.如果对原型继承还没有大致了解,完全一头雾水,请先阅读 <JavaScript高级程序设计>第六章最后部分的寄生组合式继承 或者_廖雪 ...

  5. 一个小实例理解js 原型和继承

    导语1:一个构造函数的原型对象,其实就是这个构造函数的一个属性而已,属性名叫prototype,值是一个对象,对象中有一些属性和方法,所以每个构造函数的实例对象都拥有这些属性和方法的使用权. 导语2: ...

  6. JS原型和继承

    //所有的函数都有一个prototype属性 function aa() { } console.info(aa.prototype); //这个prototype属性引用了一个对象,即原型,初始化时 ...

  7. js原型与继承

    demofunction Fun(){}
var foo = new Fun();foo.__proto__ === Fun.prototype 摘要 1.js本身不提供类实现,es6引入了class ...

  8. 【JS】深入理解JS原型和继承

    前言 在学习JS中的原型,原型链,继承这些知识之前,我们先学习下基础知识:函数和对象的关系.  我们一直都知道,函数也是对象的一种,因为通过instanceof就可以判断出来.但是函数和对象的关系并不 ...

  9. JS原型链继承

    继承普通版 继承逻辑上都差不多,普通版调用方式比较繁琐,不利于反复大量的使用: (function (){ //创建一个人员类 function Person(name){ this.name = n ...

随机推荐

  1. autolayout autoresizing

    WWDC 2012 Session笔记——202, 228, 232 AutoLayout(自动布局)入门 这是博主的WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里.如果您是首次来到本站 ...

  2. ios企业应用发布流程

    转载自:http://blog.csdn.net/justinjing0612/article/details/8758692留作备忘 企业发布app的 过程比app store 发布的简单多了,没那 ...

  3. Excel统计工作簿sheet个数

    按Alt+F11调出VBE后,在"视图"-“立即窗口”中输入: debug.print ThisWorkbook.Sheets.Count 回车后就可看到工作表数量.

  4. 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并。按学号升序排列.

    #include <stdio.h>#define SIZE sizeof(struct student)struct student{       long num;       flo ...

  5. NYOJ题目125盗梦空间

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAssAAANLCAIAAAA4rUfgAAAgAElEQVR4nOydq7LdyrKm+yXM/SDG4y

  6. NYOJ题目97兄弟郊游问题

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAr8AAAHxCAIAAADrwUM4AAAgAElEQVR4nO3dLXLjytfH8f8mzLOQYC

  7. 二、JavaScript语言--JS基础--JavaScript进阶篇--JavaScript内置对象

    1.什么事对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方 ...

  8. php 删除文件夹

    <?php // ./tp // ./tp/Public function deldir($dirname) { if(!file_exists($dirname)) { die("文 ...

  9. Linux下Vi/Vim使用笔记

    启动和关闭vim vi 打开 Vi/Vim 打开 Vi/Vim 并加载文件 <file> vi <file> vim编辑器的三种模式:一般模式.编辑模式和命令行模式在一般模式中 ...

  10. Delphi编译dll时出错"Cannot debug project unless a host application is defined.use the run|parameters...dialog box."

    问题: 在编写DLL程序的时候,按下F9或者按下那个绿色的箭头,会报错,如下 原因: 是因为你按下的F9或者那个绿色箭头是表示“Run”这个程序,但是DLL不是可执行文件,所以当然不能够运行,所以就会 ...