数据的三种存储方式

  1. String   “ ”
  2. Array    [ ]
  3. Json    { }

所有编程语言java c python c++ 等 他们都是面向对象编程,面向对象必须有三大特点,封装,继承,多态.

今天就是研究JS如何生成对象。

  1. 面向对象

Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差。

所以作者就收到java和c的影响,往面向对象靠齐。Js天生有一个Object,但他没有面向对象的特征(封装,继承,多态)。

最后研究出了构造函数。

构造函数最终目的是生成对象。

我们把封装的那个函数叫 类

类里面的属性是私有的。

类原型上的属性是公有的,可继承的

  1)类身上天生自带一个prototype的属性,属性是对象

  2)Prototype对象天生有一个constructor属性,属性值就是类本身

  3)实例天生有一个__proto__ 指向你自己类的原型

  

  原型链主要针对对象的属性来说的

  作用域链主要针对变量来说的

  

  var a和a的区别

   没有带var的变量就不能存放到内存地址中。就没有变量提升这种说法了。相当于给window加了一个属性window.a。

   带var 可以存放在内存地址中,有变量提升,同时也相当于给window加了一个属性window.a

 函数:

函数在调用的时候,会形成一个私有作用域,内部的变量不会被外面访问,这种保护机制叫闭包。这就意味着函数调用完

毕,这个函数形成的栈内存会被销毁。

但有时候我们不希望他被销毁。

函数归属谁跟它在哪调用没有关系,跟在哪定义有关。

Fn()调用完毕后得到的是一个匿名函数,但是这个函数在fn这个作用域下定义的,所以这个匿名函数内部的变量在fn作用域

下查找。这种写法可以使函数内部的变量不被销毁。

最新文章

  1. UITableViewCell 的附件类型 accessoryType 选中、详情、箭头
  2. Python简单源码解析
  3. 2016暑假多校联合---Rikka with Sequence (线段树)
  4. UIImageView swift
  5. 《转载》两个activity界面间跳转切换动画效果
  6. hihocoder 1049 后序遍历
  7. ASP.NET运行原理
  8. IISExpress实现外部访问
  9. VS2010关于error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  10. java 浅克隆 深克隆
  11. Java多线程之sleep方法阻塞线程-模拟时钟
  12. IP路由配置之---------配置PPP
  13. jmeter 发送加密请求 beanshell断言 线程组间传递参数
  14. ssh中文手册
  15. ArchLinux 启动等待1分半的问题
  16. ffmpeg按比例缩放--"width / height not divisible by 2" 解决方法
  17. python中垃圾回收机制
  18. Jekins - Hello world,Jekins + Maven + Git + Tomcat 的简单应用
  19. oracle Union 中 ORA-12704:字符集不匹配问题的解决 .
  20. centos7下配置iptables实现外网访问内网服务器

热门文章

  1. 软件工程第二次作业-VSTS单元测试
  2. 线性表->链式存储->线形链表(单链表)
  3. Appium自动化测试之Appium的安装与配置
  4. MongoDB Schema Design
  5. Android 浏览器内 H5 电脑 Chrome 调试
  6. powerdesigner的PDM模型name和comment相互复制替换
  7. oracle之数据恢复(delete误删)
  8. 18.12.09-C语言练习:兔子繁衍问题 / Fibonacci 数列
  9. CentOS 7 配置DHCP中继代理服务
  10. pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0