1:  function Person (name,age) {
   2:              this.name = name;
   3:              this.age = age;
   4:          }
   5:   
   6:          Person.prototype = {
   7:              constructor : Person, // 原型{}这种格式得重新定义指向 要不然默认是Object
   8:              getInfo: function() {
   9:                  return 'A ' + this.name + ' ' + this.age + '.';
  10:              }
  11:          };
  12:   
  13:          var p = new Person('Lily',18);
  14:   
  15:          /**
  16:           * Person的prototype属性指向Person的prototype对象
  17:           * Person的实例p的__proto__属性指向Preson的prototype对象
  18:           * Preson的prototype对象的constructor属性指向Person
  19:           */
  20:          console.log(p.constructor); // Person
  21:          console.log(p.__proto__ == Person.prototype); // true
  22:          console.log(p.__proto__.constructor == Person); // true  p.__proto__ 指向Person的prototype对象 Person的prototype对象constructor属性指向Person构造器
  23:   
  24:          //Object.create EcmaScript5 以上有
  25:          var Person2 = Object.create(p); //复制对象
  26:          console.log(Person2.name);// Lily
  27:          Person2.age = 20;
  28:          console.log(Person2.age);// 20
  29:          console.log(p.age);// 20
  30:   
  31:          var o1 = Object.create({x:1, y:2});
  32:          var o2 = Object.create(Object.prototype);
  33:          console.log(o2);
  34:          console.log(new Object());
   1:  function Person (name,age) {
   2:              this.name = name;
   3:              this.age = age;
   4:          }
   5:   
   6:          Person.prototype = {
   7:              constructor : Person, // 原型{}这种格式得重新定义指向 要不然默认是Object
   8:              getInfo: function() {
   9:                  return 'A ' + this.name + ' ' + this.age + '.';
  10:              }
  11:          };
  12:   
  13:          var p = new Person('Lily',18);
  14:   
  15:          /**
  16:           * Person的prototype属性指向Person的prototype对象
  17:           * Person的实例p的__proto__属性指向Preson的prototype对象
  18:           * Preson的prototype对象的constructor属性指向Person
  19:           */
  20:          console.log(p.constructor); // Person
  21:          console.log(p.__proto__ == Person.prototype); // true
  22:          console.log(p.__proto__.constructor == Person); // true  p.__proto__ 指向Person的prototype对象 Person的prototype对象constructor属性指向Person构造器
  23:   
  24:          //Object.create EcmaScript5 以上有
  25:          var Person2 = Object.create(p); //复制对象
  26:          console.log(Person2.name);// Lily
  27:          Person2.age = 20;
  28:          console.log(Person2.age);// 20
  29:          console.log(p.age);// 20
  30:   
  31:          var o1 = Object.create({x:1, y:2});
  32:          var o2 = Object.create(Object.prototype);
  33:          console.log(o2);
  34:          console.log(new Object());

js 原型的更多相关文章

  1. JS原型链

    JS作为发展了多年了对象语言,支持继承,和完全面向对象语言不同的是,JS依赖原型链来实现对象的继承. 首先JS的对象分两大类,函数对象和普通对象,每个对象均内置__proto__属性,在不人为赋值__ ...

  2. 深入分析JS原型链以及为什么不能在原型链上使用对象

    在刚刚接触JS原型链的时候都会接触到一个熟悉的名词:prototype:如果你曾经深入过prototype,你会接触到另一个名词:__proto__(注意:两边各有两条下划线,不是一条).以下将会围绕 ...

  3. 【09-23】js原型继承学习笔记

    js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...

  4. js原型

    1.js基本类型和对象类型 js的简单类型包括数字(其中NaN为数字类型).字符串(类似'A'为字符,js没字符类型).布尔值.null值和undefined值.其他所有的值都是对象.数字.字符串和布 ...

  5. js原型链与继承(初体验)

    js原型链与继承是js中的重点,所以我们通过以下三个例子来进行详细的讲解. 首先定义一个对象obj,该对象的原型为obj._proto_,我们可以用ES5中的getPrototypeOf这一方法来查询 ...

  6. JS 原型链图形详解

    JS原型链 这篇文章是「深入ECMA-262-3」系列的一个概览和摘要.每个部分都包含了对应章节的链接,所以你可以阅读它们以便对其有更深的理解. 对象 ECMAScript做为一个高度抽象的面向对象语 ...

  7. js原型解析

    我们都知道javascript因为具有了继承以及变量等等一系列的特性之后才被人们认为具有一门编程语言的资格,在后续的不断发展中,js在原生的基础上扩展了基于jquery等等的库,甚至衍生了像node. ...

  8. 深入理解JS原型链与继承

    我 觉得阅读精彩的文章是提升自己最快的方法,而且我发现人在不同阶段看待同样的东西都会有不同的收获,有一天你看到一本好书或者好的文章,请记得收藏起来, 隔断时间再去看看,我想应该会有很大的收获.其实今天 ...

  9. 学习zepto.js(原型方法)

    学习zepto.js(原型方法)[1] 转载 新的一周,新的开始,今天来学习一下zepto里边的原型方法,就是通过$.进行调用的方法,也是可以通过$.fn进行扩展的方法: $.camelCase(): ...

  10. js原型链部分详细使用说明案例

    1. 'index.html'文件 ```html <!DOCTYPE html> <html lang="en"> <head> <me ...

随机推荐

  1. POJ1636 动态规划+并查集

    POJ1636 问题重述: 两个监狱中各有m个囚犯,欲对这两个监狱中的囚犯进行等数量的交换.已知某些囚犯不能关押在同一个监狱,求解可以交换人数的最大值k (k < m/2). 分析: 假设监狱1 ...

  2. Jasper_table_pass parameter to table component

    <subDataset name="Dataset1" uuid="2a894ef4-dbcc-47df-bfaf-027766c7352e"> 2 ...

  3. XJOI网上同步训练DAY1 T3

    思路:一开始看到这题的时候想DP,可是发现貌似不行..因为有前缀也有后缀,而且有的后缀会覆盖到现在的前缀,这就不满足无后效性了啊! 但是有个很巧妙的思路:如果我们知道a[i]的最大值,那么p的数量和q ...

  4. HDU 4035 Maze(树形概率DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4035 题意:一棵树,从结点1出发,在每个结点 i 都有3种可能:(1)回到结点1 , 概率 Ki:(2 ...

  5. 逻辑数据库设计 - 需要ID(谈主键Id)

    本文的目标就是要确认那些使用了主键,却混淆了主键的本质而造成的一种反模式. 一.确立主键规范 每个了解数据库设计的人都知道,主键对于一张表来说是一个很重要,甚至必需的部分.这确实是事实,主键是好的数据 ...

  6. Sql Server 面试题

    1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name   kecheng   fenshu 张三     语文       81张三     数学       75李四     语文   ...

  7. POJ3255--次短路

    求1到N的次短路,到某个顶点v的次短路有两种可能,一是到其他某个顶点u的最短路+edge(u,v)二是到其他某个点u的次短路+edge(u,v): 因此在松弛的时候不仅要记录最短路,同时也要记录次短路 ...

  8. hdu 1011 Starship Troopers_树状dp

    题目链接 题意:给你一棵树(必须从根节点出发),每个节点上都有bug和value,你有m个骑士,每个骑士能消灭20个bug,你必须消灭该节点的全部bug才能拿到该节点的value,问最多能拿到valu ...

  9. 后台数据导出为Excel

    数据导出的方法如下: 一.下载office的类库:microsoft.office.interop.excel.zip 根据电脑安装的office版本选择引入相应的类库,office2007选择12. ...

  10. JQuery Ajax 获取数据

    前台页面:   对一张进行查询,删除,添加 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"& ...