一.对象克隆 var obj = { name:'li', age:23 } var obj2 = obj; // 这不是对象克隆 只是把obj的内存地址给obj2 1.for in克隆(浅拷贝)  浅拷贝 --> 主要针对第一层的属性进行拷贝 通过for in克隆 不管是私有的还是公有的 都克隆成私有的 2.for in克隆(深拷贝)  深拷贝 --> 将属性值也一个一个的遍历赋值 针对所有的属性进行拷贝不管套了几层  如果对象中的属性值又是一个引用数据类型 浅拷贝 还是把后面的引用数据类型…
一.生成对象的方式 ①单例模式(字面量定义)var obj = {} ②类的实例 var obj = new Object( ) ③工厂模式 ④构造函数:扮演三种角色 普通函数 普通对象 类 工厂模式 构造函数 构造函数如果人为return的不是对象 直接忽略 如果人为return的是对象 就取代this <-- ! ! ! ! ! ! ! ! ! 二.工厂模式和构造函数的区别1. 工厂模式 生成的对象必须要返回 构造函数模式不用return 构造函数模式默认return的是this 在构造函数…
作用域 栈内存:js执行的环境堆内存:存放代码块的空间 存放方式 键值对形式存放 字符串的形式存放js在执行之前 浏览器会给他一个全局作用域叫window 每个作用域下都分为两个模块 一个是内存模块一个是执行模块内存模块会给所有的变量一个内存地址 变量的声明在js中靠关键字 var 和 function 1.什么时候会有作用域的形成: ①浏览器天生有一个全局叫window ②函数执行的时候会形成一个私有的 js在执行之前 浏览器会给他一个全局作用域 叫window 在window下分两个模块 一…
面向对象编程 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式.它使用先前建立的范例,包括模块化,多态和封装几种技术.今天,许多流行的编程语言(如Java,JavaScript,C#,C+ +,Python,PHP,Ruby和Objective-C)都支持面向对象编程(OOP). 相对于 “一个程序只是一些函数的集合,或简单的计算机指令列表.”的传统软件设计观念而言,面向对象编程可以看作是使用一系列对象相互协作的软件设计. 在 OOP 中,每个对象能够接收消息,处理数据和发送消息给其他…
面向对象 Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差. 所以作者就收到java和c的影响,往面向对象靠齐.Js天生有一个Object,但他没有面向对象的特征(封装,继承,多态). 最后研究出了构造函数. 构造函数最终目的是生成对象 我们把封装的那个函数叫 类类里面的属性是私有的类原型上的属性是公有的 可以继承1)首先类身上天生自带一个prototype的属性 属性值是对象2)prototype 对象天生有一个constructo…
作用域 // 1. fn() function fn () { console.log(12) } var as = function () { console.log(45) } // 2. var a = 12; function fn () { console.log(a) var a = 45; console.log(a) } fn() //3. var a = 12; function fn () { console.log(a) a = 45; console.log(a) } f…
原型 原型分析 1.每个 函数数据类型(普通函数,类)都有一个prototype属性 并且这个属性是一个对象数据类型2.每个Prototype上都有一个constructor属性 并且这个属性值是当前函数或者类本身3.每一个对象数据类型(实例,普通对象,prototype)都天生具有一个__proto__属性他的属性值是当前实例所属类的原型 通过图像我们知道 zhang.__proto__==Person.prototype   true 原型链 Duixiang.shuxing 的时候,首先看…
一.复习 面向对象 1)单例模式 2)工厂模式 3)构造函数 ①类js天生自带的类 基类object function array number math boolean date regexp string 二.事件    浏览器客户端上客户触发的行为都称为事件 所有的事件都是天生自带的 不需要人为绑定 只需要我们去触发通过obj.事件名=function(){} 我们给元素的事件绑定了一个方法 事件名:onmouseover onmouseout onmousedown onmousemov…
对象与构造函数 一.js数据类型 基本数据类型:string   undefined   null  boolean  number 引用数据类型  Object  array  function 二者的区别 基本数据类型就是简单的操作值,引用数据类型,把引用地址赋值给变量 引用数据类型会开辟一个新的内存空间把内存空间的地址赋值给变量 基本数据类型↓↓↓ 堆内存 就是存放代码块的,存放形式有两种,一种是对象以键值对的形式存放 另一种就是函数  以字符串的形式存放 案例: 引用数据类型↓↓↓ 案例…
数据类型与全局属性 js的本质就是处理数据 数据来自于后台的数据库所以变量就起到一个临时存储数据的这作用ECMAscirpt 制定了js的数据类型 一.数据类型 1.基本数据类型 基本数据类型就是简单的赋值 Var s=”hello”; var s=12; var s=true; var s=null; var s=undefined; 1)基本数据类型就是简单的赋值 字符串 string数字 number布尔 booleannull 空undefined 未定义 2)对象 object arr…