zoukankan      html  css  js  c++  java
  • JS面向对象编程(进阶理解)

    JS 面向对象编程

    如何创建JS对象

    1. JSON语法声明对象(直接量声明对象)

       var obj = {};
      
    2. 使用 Object 创建对象

       var obj = new Object();
      

    JS对象可以后期添加属性

    案例

    var obj = {};
    obj.name = "Tom";
    
    var obj2 = new Object();
    obj2.name = "Jerry";
    

    对象特点:

    1. new Object() 和 JSON 语法创建的对象没有差别!

      • JSON语法简洁方便, 更加容易使用
    2. 对象可以随时添加属性

      • 对象.属性 = 值
    3. 不存在的属性, 值是 undefined

      • undefined 相当于 false, 利用这个特点可以用于检测属性是否存在

          if(! obj.age){
          	console.log('没有age属性');
          }
        
          if(obj.age){
          	console.log('年龄:'+obj.age);	
          }
        
    4. 可以随时删除对象的属性

       delete 对象.属性;
      
    5. JS Object的底层本质是一个散列表!

      • 为对象添加属性, 本质是添加了 key:value, key是属性名, value是属性值.
      • 访问对象属性, 本质是get(key)

    JS对象没有封装性可言! 因为不能完整支持面向对象3大特性, 所有JS不是面向对象的编程语言!

    JS 对象的方法

    js对象的方法, 本质是一个属性, 是一个值是函数对象的属性!

    var obj = {};
    obj.name = "Tom";
    obj.who = function(){
    	console.log(this.name);
    }; 
    

    调用方法与访问属性

    obj.who();//调用方法
    obj.who; 访问属性的值, 函数对象
    

    可以像属性一样删除方法

    delete obj.who
    

    可以像属性一样, 修改方法!

    obj.who=function(){
    	console.log(this.name);
    };
    obj.who=function(){
    	console.log('Hello World!');
    };
    //who方法引用最后一个函数对象
    

    JS方法没有重载!!

    obj.add = function(a, b){
    	return a+b;
    }
    obj.add = function(a, b, c){
    	return a+b+c;
    }
    //最后只保留最后的方法: add = a+b+c
    obj.add(1,2) //返回未定义
    obj.add(1,2,3) //返回6
    

    使用JSON直接声明属性和方法

    var obj = {
    	name:'Tom', 
    	age:18, 
    	who:function(){
    		console.log(this.name);
    	}
    };
    //后期扩展属性
    obj.price=25;
    

    默认的变量和函数

    在网页值直接声明的变量和函数, 是window对象的属性和方法

    也可以利用赋值, 修改window提供的属性和方法:

    //重写JS原生alert函数
    window.alert=function(e){
    	$('#can').load('./alert/alert_error.html',function(){
    		$('#error_info').text(' '+e);
    		$('.opacity_bg').show();
    	});
    }
  • 相关阅读:
    SpringBoot接口文件findBy方法写错导致抛出IllegalArgumentException
    用tomcat启动spring-boot
    Idea使用tool window中的persistence功能一键生成数据库实体
    Idea 启动 tomcat 报错
    详细梳理ajax跨域4种解决方案
    他们权利意识强,但是也会为生活牺牲很多
    每月碎碎念 | 2019.09
    说好不哭 我不会走
    css实现内容不相同的左右两个div等高
    简单了解css3轮廓outline
  • 原文地址:https://www.cnblogs.com/chentging/p/7156649.html
Copyright © 2011-2022 走看看