zoukankan      html  css  js  c++  java
  • 15 对象

    对象
    是什么:
      1 js对象
        狭义对象 
    			js对象,用{ }大括号标识,特点:可以添加属性、属性可以访问。对象是拥有属性和方法的数据
          什么是狭义对象:
            一组无序的属性集合,它由若干键值对组成,JavaScript对象的键都是字符串类型,值可以是任意数据类型
    				var person = {
    					name: 'Bob',
    					age: 20,}
    
        广义对象
    			我们认知的对象,window 、 Date 、Math
      2 基本类型数据不是对象
           number null undefined string boolean
        为什么:
          因为基本类型数据不能添加属性,不能拿到属性值,所以基本数据类型不是对象
    
      3 json与js狭义对象
        var p1 = {
        "name":"along",
        "age":31
      }
    
      	json的属性必须加双引号,一般狭义对象不加引号的 
    	  var obj = {
    	    "~~":"2019",
    	    "国籍":"china",
    	   "2018":2018
    	  } 
    
    怎么使用对象
    	背景
      	我们操作DOM,js对象中包含DOM元素和方法,通过调用js对象的方法来操作DOM元素
    	访问属性
    		访问对象的属性有2中方法,点记法和索引发
    			xiaohong.name;
    			xiaohong['middle-school']; // 'No.1 Middle School'
    			
    		1、点记法访问属性
    			点记法要求属性名必须是一个有效的变量名。
    			如果属性名包含特殊字符,就必须用''括起来,访问这个属性也无法使用.操作符,必须用['xxx']来访问
    			var xiaohong = {
    			name: '小红',
    			'middle-school': 'No.1 Middle School'
    		};
    		
    		如果访问一个不存在的属性会返回什么呢?
    			JavaScript规定,访问不存在的属性不报错,而是返回undefined
    		
    		判断一个属性在不在对象中
      			hasOwnProperty 、in		
    			如果我们要检测xiaoming是否拥有某一属性,可以用in操作符
    				'name' in xiaoming; // true	
    				不过要小心,如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的:'toString' in xiaoming; // true
    				要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法
    					xiaoming.hasOwnProperty('name'); // true
    					xiaoming.hasOwnProperty('toString'); // false
    	删除、新建属性	
    		由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性
    		xiaoming.age = 18; // 新增一个age属性
    		delete xiaoming.age; // 删除age属性
    		
    	对象找属性
      原型链查找机制
        对象调用方法,先从自己里面找,如没有,就往上查找原型(__proto__)有没有,一直往上查找
        __proto__、prototype都指向原型,表示同一个东西
    
    原型
      什么是原型
      	原型就是类
      __proto__:是每个对象都有
      prototype:是函数才会有的属性,两者指向同一个原型对象
    
    
    创建对象
      1、 直接用{ ... }创建一个对象
      2、用构造方法创建对象
        先定义一个构造函数
          function Student(name) {
            this.name = name;
            this.hello = function () {
            alert('Hello, ' + this.name + '!');
            }
          }
        var xiaoming = new Student('小明');//写了new,它就变成了一个构造函数,它绑定的this指向新创建的对象,并默认返回this,也就是说,不需要在最后写return this;
        xiaoming.name; // '小明'
        xiaoming.hello(); // Hello, 小明!
    
     
    
    判断一个属性在不在对象中
      hasOwnProperty 、in
    
    判断一个对象的实例
      instanceOf
    
    类型是什么
    	我们说的类型就是构造函数的名字的
    
    继承
      子类继承父类的属性和方法
    
    	怎么做
      	1、儿子的原型指向父亲。属性和方法
      	2、儿子的构造方法中调用父类的构造方法,仅属性
    
    	什么时候用继承
      	同城我们不用继承,直接new对象就可以了,只有需要修改父类方法时才需要继承
    
    
      
    

      

  • 相关阅读:
    【转】JMeter学习 参数化User Defined Variables与User Parameters
    【转】 JMeter学习(三十七)Jmeter录制手机app脚本
    【转】JMeter学习(三十五)使用jmeter来发送json/gzip格式数据
    vue axios配置element loading
    D3 JS 实现可视化
    Axios 封装
    Axios和.Net Core 跨域配置(当后台启用windows验证的情况)
    svg绘制圆形数据分布图
    svg 折线鼠标绘制
    svg 圆形标签数据分布
  • 原文地址:https://www.cnblogs.com/xuanjian-91/p/10267014.html
Copyright © 2011-2022 走看看