JavaScript——六

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

magin:兄弟之间的

padding:父子关系

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

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

实验所用样式:

 

 

 

  script:

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

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

 

模拟滚动条:

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

 

 

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

 

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

 

 

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

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

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

 

 

输出两个10

函数在后面才调用

 

10 undefine

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

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

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

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

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

优点:节省内存

缺点:可能出现命名冲突

 prototype:构造函数的原型对象

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

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

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

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

包含的关系用实线来表示

 原型链:

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

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

从下到上原型链:

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

解决错误;设置construct的值指向这个构造函数

 系统提供的构造函数:

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

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

原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/10786485.html