【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

javascript的【原型】【prototype】理解-【浅显易懂】【彻底搞明白】

原创 2016年08月29日 15:26:44

需要工具:Chrome

语言:javascript

目的:彻底搞明白

全文原则:【原型是在类型上定义的,对象上不能定义,只能用】【原型属性中的方法或属性会被对象中的同名方法属性隐藏,其实内存中还是存在的】【搞清楚this,表示当前对象】

        function Aclass()
        {
            this.Property1 = 1;
            this.Method1 = function()
            {
                alert(1);
            }
        }  
        var obj = new Aclass();
        obj.Property2 = 2;
        obj.Method2 = function()
        {
            alert(2);
        }


上面的两个Property1和Property2、Method1和Method2在内存什么位置呢?下面截图

我们发现,都是在obj对象上的。。。

那么下面的代码呢?

        function Aclass(){}
		
	Aclass.prototype.Property1 = 1;
	Aclass.prototype.Method1 = function()
	{
		alert(1);
	}
		
        var obj = new Aclass();
        obj.Property2 = 2;
        obj.Method2 = function()
        {
            alert(2);
        }


看到什么了?我们定义的属性和方法跑到一个【__proto__】属性里面了。这个就是区别。

再看看下面的代码

        function Aclass(){}
		
	Aclass.prototype.Property1 = 1;
	Aclass.prototype.Method1 = function()
	{
		alert(1);
	}
		
        var obj = new Aclass();
        obj.Property1 = 2;
        obj.Method1 = function()
        {
            alert(2);
        }
截图如下:

What!!!!竟然还能定义一样的??!!可是似乎并没有调用原型中的那个,用的是对象中定义的那个。原型中的被隐藏了!!!其实内存中还是有的。

版权声明:本文为博主原创文章,转载请注明出处 举报

相关文章推荐

计算机科学精彩帖子收集--JAVA和分布式专栏

之前收集了一个计算机科学精彩帖子收集,渐渐发现帖子越来越大,所以现在干脆把Java和分布式的部分单独一贴。 Java jdk下载 http://openjdk.jav...

【JavaScript 封装库】Prototype 原型版发布!

/* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =================================================================================== 程序名称: JavaScript 封装库 Prototype 版 迭代版本: 无 功能总数: 14 个 功能

史上最全的javascript知识点总结,浅显易懂。

一,认识javascript 1-1 为什么学习JavaScript 一)、你知道,为什么JavaScript非常值得我们学习吗? 1. 所有主流浏览器都支持JavaScript。 2. 目...

hbase on yarn 安装笔记,私货,浅显易懂

  http://blog.csdn.net/jiushuai/article/details/26694475   java高级交流群:37341439 ,文明看不明白的地方可以进群询问啊!欢迎学习hbas

浅显易懂的理解java中的接口

接口的作用其实是提供你 在不改动原有代码的基础上 增加、改变类的功能。那么为什么在设计模式里应用广泛呢?因为在面向对象的设计原则中有那么一条开放封闭原则,内容大致如下:一个良好的设计应该可以在不改动原...

spark on yarn 安装笔记,私货总结!浅显易懂!

http://blog.csdn.net/jiushuai/article/details/26693569     <h1 style="margin-bottom: 0px; display

学习Javascript闭包(Closure) 个人觉得非常浅显易懂

闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作...

JavaScript prototype(原型)

//原型 prototype 创建每一个函数都有一个prototype,这个属性其实是一个指针,这个指针总是指向一个对象 这个对象的用途就是将特定的属性和方法包含在内,起到一个所有实例共享的作用。 //构造函数方式 --1. function Person(name, age){ this.name = name; this.age = age; this.sayName = func

javascript prototype 原型链 深入分析

面向对象的javascript编程中,我们知道,访问一个对象实例的某个属性,首先会先在这个对象中寻找,如果不存在,就在对象的原型中寻找,如果还不存在,就沿着[color=red]原型链[/color]向上寻找,这里的原型链具体是怎么个形式呢,下面我们就来看看 [code="java"]var Super = function(){ this.superName = "super"; } var Sub = function(){ this.subName = "sub"; } var superObj = new Super(); Sub.pro

【数据库】浅显易懂地理解左、右连接

之前一直对数据库里面的外连接有些疑惑,理解的不是很透彻,今天总算自己建了个表,详细地对照了几种写法,总算彻底搞清楚了。 基本概念 左连接、右连接就是数据库里面的关键字  left join 和 rig...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)