zoukankan      html  css  js  c++  java
  • js学习笔记(六)

    JavaScript

    JavaScript 的对象

    Object是js 中的重要概念,js的对象由花括号{}包含,其中以key:value对的形式存在,其中key为键,value可以是任意的数据类型,每一键值对儿由逗号分开,
    - 对象中储存数据和函数(方法);
    - 对象中包括属性和方法(),可以使用[]方括号obj['key']的方式和.点的方式obj.key()/obj.key的方式来访问属性值和方法。

    let people = {
        name:'tom',  //字符串属性
        age: 18,     //数字
        sports: ['bike','swim','sleep'], //数组
        hello: ()=> console.log('hello world'), //函数  箭头表达式
        say: ()=> 'I am book' ,   //return 
        old: function(){console.log('old stand')},
        //老标准的方法,函数表达式
        es6(){console.log('new stand neednt :')},
        //新标准的方法不需要:冒号,不需要键了,直接定义函数,只能用函数表达式 
        //定义: method(){方法内容}
    
    
    }
    
    console.log(people.name)
    console.log(people['age']) //键需要变温字符串索引,类似python的字典
    people.hello()   //点(作用域?)调用对象的方法
    people['hello']()  //[]索引调用对象方法
    people.es6()     //新标准不用冒号的 
    

    this指针

    this指针指代对象本身,左右与对象内部,可以为对象内部的方法传递对象的属性。

    let me = {
        name: 'tom',
        age : 15,
        sayHello(){console.log(`I am ${this.name}`)},  // this 指针可以取到函数外的值传进来,这些值都属于this指代的me对象,等价于me.name。
    } 
    let she = {
        name: 'week',
    }
    she.sayHello = me.sayHello;   //she对象新增方法,等于me对象的一个方法,这时候this指针就会变为指向she。
    she.sayHello() //输出的是week

    Getter取值 && Setter赋值

    如果我们希望在后来动态的改变对象中的属性,我们就需要使用相应的方法来接收外部数据并进行设置。
    set change(outer_argvs){this._changes = outer_argvs}
    get var(){return this_vars}
    需要使用set设置关键字和get读取关键字

    let person = {
      _name: 'Tom',   //下滑线意味着不直接从外部接触
      _age: 137,  
     set age(newage){    
        if(typeof newage ==='number'){
        this._age=newage;   //设置新值形如 obj.age=num
        console.log(`newage is setted ${newage}`)}
        else{console.log('Invalid input')}
       },
    get age(){return this._age}    //取值方法,可从外部直接取出值 形如obj.age
    
    };
    // set 和get方法可以直接从外部设置`=`或者读取obj内部的值,方便。
    person.age =11     //设置新值,调用了内部set的方法直接赋值
    console.log(person.age)  //直接取出值
    




    tips
    1.$取值的时候需要用反引号:my name is ${this.name}而不是引号;
    2.js对象和json数据格式有区别,js中对象为属性:value; 而json中为key:value,key需为字符串加引号“”;
    3. js中的JSON方法包括JSON.stringify()将js对象转为json格式,和JSON.parse()将json格式数据转为js对象(可以用obj.attri获取属性值);

  • 相关阅读:
    C语言I博客作业09
    C语言I博客作业08
    C语言I作业07
    C语言博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
    C语言|博客作业07
    C语言|博客作业06
    C语言|博客作业05
  • 原文地址:https://www.cnblogs.com/Tom-Ren/p/9897845.html
Copyright © 2011-2022 走看看