JavaScript知识点总结--6

方法名后:     调用方法,立即执行,就加()

           将方法作为对象传递,不加()

 

闭包:函数使用了*不属于自己*的*局部变量*!

 


闭包的问题:1.       普通方法调用完,活动对象回收!

                   闭包方法导致父方法活动对象不释放

                    闭包方法占用更多内存空间

重新获得闭包,闭包内的局部变量都重置

2.         闭包中多个方法,访问的是同一个局部变量!

                          只要变量变化,所有方法都受影响!

 

对象:自定义对象!

面向过程:以任务的实行步骤为编程顺序。

    方法:封装并重用复杂任务的方式

问题:功能和功能操作的数据,分离!

面向对象:在设计过程中,一切以描述一个对象为基本原则

什么对象:封装现实中一个事物的属性和功能的结构

对象中包含:属性和功能(方法)!

 

js中的对象:其实就是关联数组!

 

 

创建自定义对象:3种

直接量:var obj={属性名:属性值,...}

访问属性?obj.属性名

可能不存在的属性,使用之前,必须先判断存在,再使用:

判断任意对象是否包含属性:

if(obj.hasOwnProperty("属性名"))

如果包含返回true,否则返回false

判断内置对象,浏览器对象兼容性:

if(obj.属性名)-->undefined,null,0,"",NaN都是false

其余都是true

 

自定义对象创建的依据?需求中的名词!

需求中的动词:对象的功能/方法

对象的属性?表,证,单,据

 

对象中的方法:对象中的功能。

如何定义:var obj={

           方法名:function(){方法体}

        }

方法其实就是一个对象!

对象中的方法本质上就是一个特殊的属性!

对象中的方法是操作数据的功能

 

对象自己的方法,如何访问自己的属性:this指代当前对象

什么是this? 栈中一个指针,永远指向当前正在操作的对象!

 

面向对象三大特点:封装,继承,多态

封装?将数据和对数据的操作,包装为一个整体,过程就叫封装。

继承:使用现有类型,创建出新的类型。新类型中可以使用现有类型的属性和功能!并且新类型可以扩展出现有类型没有的属性和功能!

 

所有对象的父类型,Object:toString()

    hasOwnProperty()

 

对象模板/构造函数:专门用来反复创建相同结构的对象的专门方法

如何定义构造函数:function 类型名(属性值参数...){

                   this.属性名=属性值;

                  this.方法名=function(){

                       方法体;

                   }

               }

new构造函数():

new:开空间

构造函数:划分空间结构;初始化内部属性的值

 

重写:如果子类型认为父类型的方法不好用!可以重新定义和父类型完全同名的方法!实现覆盖!

默认toString方法如果无法打印内容,默认打印的是对象类型

一般自定义类型对象,都会重写toString方法!

 

原型prototype:构造函数背后,专门保存由构造函数创建出的对象共有的数据。

 

自有属性:只给一个对象定义的属性,仅属于当前对象。

其他对象不能共享。

共有属性:保存在原型中,由所有同类型对象共享的属性

   设置/读取:构造函数.prototype.共有属性名

 

删除属性定义:delete 对象[.prototype].属性名;

 

hasOwnProperty:仅检测当前对象的自有属性!

属性 in 对象:不但检测当前对象的自有属性,而且同时检测当前对象原型的共有属性!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值