面向对象

 *****面向对象:
   什么是面向对象: 程序中都是用对象来描述现实中的一个事物
   什么是对象: 程序中描述现实中一个具体事物的程序结构
         包括: 属性和功能
   为什么面向对象: 现实中所有数据都必须包含在一个事物中才有意义。
   
   如何创建自定义对象: 
     封装: 将一个事物的属性和功能集中定义在一个对象中
       现实中一个事物的属性,会成为对象的属性
           而一个事物的功能,会成为对象的方法
     3种: 
     1. 对象直接量: 
var obj={
 "属性名":属性值,
          ...
 "方法名":function(参数列表){函数体;return xxx}
        }
强调: 其实属性名和方法名的引号可省略
如何访问属性和方法: 
 obj.属性名 —— 用法同普通变量
             等效于:obj["属性名"]
 obj.方法名(); —— 用法同普通函数
    等效于: obj["方法名"]()
强调: 如果用.就不能加"",
     如果用[],就必须加""
强烈建议,用.访问对象的属性和方法。
   *****js中一切都是对象,一切对象底层都是hash数组
特殊: 1. 访问到不存在的属性,返回undefined
              2. 随时可添加不存在属性


        this: 在当前对象的方法内,引用正在调用方法的对象
何时使用: 当前对象的方法内,要访问当前对象自己的属性时,就必须写成this.属性名


        何时创建对象: 今后都要先封装对象,再调用对象的属性和方法。
   
     2. 使用new关键字: 
var obj=new Object();//创建空对象
        obj.属性名=值;
        ...
        obj.方法名=function(){}
其中: new Object();
    new可省略,()也可省略,但不能同时省略
*****3. 使用构造函数反复创建多个相同结构的对象
    使用直接量创建对象的问题: 仅适合创建一个单独的对象
          反复创建多个相同结构的对象,则代码冗余度太高!
 不便于维护  
    解决: 先定义构造函数,再用构造函数反复创建对象
    什么是构造函数(constructor): 
专门定义一类对象统一结构的函数
    如何定义: function 类型名(属性参数列表){
this.属性名=属性参数值;
                ...
                this.方法名=function(){
  ...
}
              }
    如何调用构造函数创建对象: 
var obj=new 构造函数名(属性值列表);
    new的执行过程: 4件事
1. 创建一个空对象: new Object()
        2. ?
        3. 用新创建的空对象,调用构造函数
  |new Object()|
      {}.Student() 
  //Student中的this->正在创建的空对象
        4. 返回新对象的地址,保存到左边的变量中

    实例化: 用构造函数创建一个新对象
构造函数是一类对象的统一结构
        每个对象是构造函数的实例(instance)


    遍历一个对象的属性: 
for(var key in obj){
   //当前属性值:obj[key]
        }
    









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值