/**

 * 下面演示了通过原型的创建方式,使用基于原型的创建能够将属性和方法

 * 设置为Person专有的,不能通过window来调用。

 * 原型是javascript中的一个特殊对象,当一个函数创建之后,会随之就产生一个原型对象

 * 当通过这个这个函数的构造函数创建了一个详细的对象之后,在这个详细的对象中,就会有一个属性指向原型

 */

//第一种状态                                     

function Person(){                       

  

}

//另外一种状态

Person.prototype.name = "octopus";         

Person.prototype.age = 23;

Person.prototype.say = function(){       

  alert(this.name+":"+this.age);

}

//第三种状态

var p1 = new Person();

p1.say();  //octopus:23

say();  //say is not defined 通过window没有办法调用say方法,如此就完毕了封装

//检測p1是否有_prop_指向Person的原型

alert(Person.prototype.isPrototypeOf(p1));  //true

//第四种状态

var p2 = new Person();

p2.name = "Ada";

p2.say();  //Ada:23

//检測p1是否有_prop_指向Person的原型

alert(Person.prototype.isPrototypeOf(p1));  //true

//检測某个对象的constructor

alert(p1.constructor==Person);  //true

//检測某个属性是否是自己的属性

alert(p1.hasOwnProperty("name")); //false p1自己的空间中没有值

alert(p2.hasOwnProperty("name")); //true  p2在自己的空间中设置了name

//能够通过delete删除空间中的属性

delete p2.name;

p2.say(); //octopus:23

alert(p2.hasOwnProperty("name")); //false

//检測某个对象在原型或者自己中是否包括某个属性,通过 in 检測

alert("name" in p1);  //true

alert("address" in p1);  //false

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

原创文章如转载,请注明出处,本文首发于csdn站点:http://blog.csdn.net/magneto7/article/details/24913525

js:深入prototype(上:内存分析)的更多相关文章

  1. JS内存泄漏 和Chrome 内存分析工具简介(摘)

    原文地址:http://web.jobbole.com/88463/ JavaScript 中 4 种常见的内存泄露陷阱   原文:Sebastián Peyrott 译文:伯乐在线专栏作者 - AR ...

  2. JS的prototype的共享机制分析

    function Super(){ } Super.prototype.aaa=[1,2,3]; Super.prototype.bbb=1; function Sub(){ Super.call(t ...

  3. 深入理解js的prototype以及prototype的一些应用

    上一篇讲了js的prototype概念,在这里回顾一下prototype的定义: prototype是函数的一个属性,并且是函数的原型对象.引用它的必然是函数,这个应该记住. 但是,很奇怪,各位看官, ...

  4. Chrome开发者工具之JavaScript内存分析

    阅读目录 对象大小(Object sizes) 对象的占用总内存树 支配对象(Dominators) V8介绍 Chrome 任务管理器 通过DevTools Timeline来定位内存问题 内存回收 ...

  5. [转载]JavaScript内存分析

    https://github.com/CN-Chrome-DevTools/CN-Chrome-DevTools/blob/master/md/Performance-Profiling/javasc ...

  6. Js面向对象和数据类型内存分配(转)

    一 Js基本数据类型以及内存情况 1 Undefined Undefined类型只有一个值undefined,在使用了声明但未初始化的变量的时候,这个变量值就是undefined 1 var hi; ...

  7. js闭包和ie内存泄露原理

    也议 js闭包和ie内存泄露原理 可以, 但小心使用. 闭包也许是 JS 中最有用的特性了. 有一份比较好的介绍闭包原理的文档. 有一点需要牢记, 闭包保留了一个指向它封闭作用域的指针, 所以, 在给 ...

  8. Chrome开发者工具之JavaScript内存分析(转)

    尽管JavaScript使用垃圾回收进行自动内存管理,但有效的(effective)内存管理依然很重要.在这篇文章中我们将探讨分析JavaScript web应用中的内存问题.在学习有关特性时请确保尝 ...

  9. 浅析JS中的堆内存与栈内存

    最近跟着组里的大佬面试碰到这么一个问题, Q:说说var.let.const的区别 A:balabalabalabla... Q:const定义的值能改么? A:你逗我?不能吧 不知道各位看官怎么想? ...

  10. JS中的堆内存与栈内存

    在js引擎中对变量的存储主要有两种位置,堆内存和栈内存. 和java中对内存的处理类似,栈内存主要用于存储各种基本类型的变量,包括Boolean.Number.String.Undefined.Nul ...

随机推荐

  1. Python基础:内置类型(未完待续)

    本文根据Python 3.6.5的官文Built-in Types而写. 目录 1.真值测试 2.布尔操作 -- and, or, not 3.比较 4.数字型 -- int, float, comp ...

  2. WebApi Owin SelfHost OAuth2 - client_credentials

    参考:http://neverc.cnblogs.com/p/4970996.html

  3. Linux sudo 配置

    1.配置sudo权限 sudo配置信息保存在 /etc/sudoers 文件中,可以使用vi修改.但使用vi修改需要给root用户设置权限,可以使用 visudo 直接修改. visudo 复制这行将 ...

  4. 一张图来帮你理解 SOA

    SOA 曾经一度是技术领域中最难以理解的一个概念.SOA 似乎让很多人感到困惑 - 一般来讲这是由于人们认为它拥有几乎神奇的力量.事实上 SOA 只是一个很简单的概念:SOA 由诸如 C++ 和 Ja ...

  5. Java人员正确使用 IntelliJ IDEA的方式

    原文: http://tengj.top/2017/02/22/idea1-1/ 作者: 嘟嘟MD 前言 博主是Java开发人员,以前一直都用myeclipse来开发的,说实话感觉myeclipse毫 ...

  6. poj1611 The Suspects(并查集)

    题目链接 http://poj.org/problem?id=1611 题意 有n个学生,编号0~n-1,m个社团,每个社团有k个学生,如果社团里有1个学生是SARS的疑似患者,则该社团所有人都要被隔 ...

  7. MongoDB入门教程二[MongoDB Shell 简介与使用]

    MongoDB Shell 是MongoDB自带的JavaScript Shell,随MongoDB一同发布,它是MonoDB客户端工具,可以在Shell中使用命令与MongoDB实例交互,对数据库的 ...

  8. memory_get_usage()查看PHP脚本使用内存

    memory_get_usage()可以查看当前php使用的内存大小.对于优化算法提高内存使用效率还是很实用的,尤其是对当下的移动端程序. <?php echo memory_get_usage ...

  9. 数据挖掘算法:关联分析二(FP-tree算法)

    三.FP-tree算法 下面介绍一种使用了与Apriori完全不同的方法来发现频繁项集的算法FP-tree.FP-tree算法在过程中没有像Apriori一样产生候选集,而是采用了更为紧凑的数据结构组 ...

  10. [js]事件篇

    一.事件流 1.冒泡事件:从特定的事件到不特定事件依次触发:(由DOM层次的底层依次向上冒泡) (1)示例: <html onclick="add('html<br>')& ...