magin和padding的区别:https://www.cnblogs.com/zxnn/p/8186225.html

magin:兄弟之间的

padding:父子关系

JavaScript——六_原型链

body和网页边框左右距离上的magin为8(固定的)

JavaScript——六_构造函数_02

实验:(以下为基本代码)

实验所用样式:

 JavaScript——六_原型对象_03

 JavaScript——六_回调函数_04

 

 JavaScript——六_系统对_05

  script:

JavaScript——六_原型对象_06

JavaScript——六_回调函数_07

JavaScript——六_回调函数_08

JavaScript——六_系统对_09

 这个放大效果前提是有一个大图片还有一个小图片,而不是我们操作使它变大,是它本来就大着咧!

还要注意的是我们使用onmouseover和onmouseout的时候会触发冒泡,此时那个显示图片的操作会执行多次,这时我们可以使用onmouseenter和onmouseleave来代替,这两个方法不会触发这个冒泡反应

 JavaScript——六_原型链_10

模拟滚动条:

JavaScript——六_回调函数_11

红色的是我们写的,灰色的是我们用overflow:auto系统自己配的

 JavaScript——六_构造函数_12

JavaScript——六_原型链_13

JavaScript——六_系统对_14

JavaScript——六_回调函数_15

JavaScript——六_构造函数_16

JavaScript——六_系统对_17

JavaScript——六_构造函数_18

JavaScript——六_系统对_19

JavaScript——六_构造函数_20

 JavaScript——六_原型对象_21

将动画封装成一个函数这样可以方便以后使用

 JavaScript——六_系统对_22

JavaScript——六_原型链_23

上一个如果点击多次按钮移速会加快(每点一次就又创一个定时器),为了避免

 JavaScript——六_构造函数_24

 JavaScript——六_原型对象_25

这样的话可以给多个盒子制造动画

 如果在一个盒子进行动画的时候你想知道他的位置,那你就要设置一个定时器来隔一段时间查看一次

回调函数使用,让两个盒子相继到达目的地,一个到了另一个才开始走

 JavaScript——六_系统对_26

JavaScript——六_系统对_27

 JavaScript——六_原型链_28

输出两个10

函数在后面才调用

 JavaScript——六_回调函数_29

10 undefine

变量预解析:先把声明语句提前,但是赋值语句位置不变,再按顺序执行代码

JavaScript——六_原型对象_30

方法中的this,是调用这个对象的对象

 如果把方法给了一个函数,再用“函数名()”则此时this代表的是window

JavaScript——六_原型对象_31

JavaScript——六_回调函数_32

JavaScript——六_回调函数_33

JavaScript——六_原型链_34

JavaScript——六_原型链_35

JavaScript——六_系统对_36

constructor这个属性不是对象的而是构造函数的

JavaScript——六_系统对_37

但是如果把sayHi这个函数写在外面那他们的地址就一样了,此时再比较它们的值就是true

JavaScript——六_构造函数_38

优点:节省内存

缺点:可能出现命名冲突

 

 prototype:构造函数的原型对象

JavaScript——六_系统对_39

JavaScript——六_原型链_40

一旦使用prototype对构造函数增添东西,那么这个东西在内存中的地址只有一个,尽管你创造了多个对象

JavaScript——六_原型链_41

访问对象的成员时先找对象的成员,如果没有那就再去找原型对象的成员

他们之间是通过_proto_----> prototype相连接

实例成员:通过对象能够访问到的,上述中在构造函数中定义的sayHi也是实例成员

JavaScript——六_系统对_42

JavaScript——六_原型链_43

包含的关系用实线来表示

 原型链:

JavaScript——六_系统对_44

JavaScript——六_回调函数_45

JavaScript——六_系统对_46

JavaScript——六_构造函数_47

原型链:对象---->原型对象---->原型对象的原型

调用对象的某个属性时,就按照这个顺序找,找到了就停止,找不到接着按这个链找

从下到上原型链:

JavaScript——六_原型链_48

JavaScript——六_原型对象_49

JavaScript——六_系统对_50

JavaScript——六_构造函数_51

JavaScript——六_系统对_52

但是这个样子的话会出现bug,此时JavaScript——六_回调函数_53的属性construct和之前的不一样,指向发生了错误,而且你这样写原来里面的函数也会没有,相当于你对他进行了重置

解决错误;设置construct的值指向这个构造函数
JavaScript——六_回调函数_54

JavaScript——六_原型对象_55

 系统提供的构造函数:

对象提供的一些函数都定义在原型对象里面,这样可以共享

JavaScript——六_原型对象_56

不能这样写,所以系统对他进行了限制,你这样写是无用的,因为系统对他提供的许多函数,你要是重新赋值清空里面的东西肯定不行

JavaScript——六_系统对_57