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();
    	});
    }
  • 相关阅读:
    CodeForces 288A Polo the Penguin and Strings (水题)
    CodeForces 289B Polo the Penguin and Matrix (数学,中位数)
    CodeForces 289A Polo the Penguin and Segments (水题)
    CodeForces 540C Ice Cave (BFS)
    网站后台模板
    雅图CAD
    mbps
    WCF学习-协议绑定
    数据库建表经验总结
    资源位置
  • 原文地址:https://www.cnblogs.com/chentging/p/7156649.html
Copyright © 2011-2022 走看看