面向js对象

94 阅读2分钟

基本数据类型 number string boolean null undefined Symbol

引用数据类型 object(Function Array RegExp)

es6 提供一个基本数据类型Symbol

Symbol代表了唯一的一个数 不可以new

console.log('1'==='1'); // =>true

console.log( Symbol('1') == Symbol('1') ) =>false;

用Symbol包裹的数据是唯一的 独一无二的

首字母开头大写的叫 构造函数 可以new

let a = new Symbol('username') 不可以new

 /* 两个人在同时开发一个页面 */
    /* 小A定义了对象obj */
    //    let obj = {
    //        username:"zhangsan"
    //    }
    //    /* 小B 不知道这个obj 有的key叫username
    //    把username 重新赋值了 造成了问题*/
    //    obj.username = 'lisi'

    //    console.log(obj);

    // let obj = {
    //     [Symbol('username')]: "zhangsan"
    // }
    // console.log('old',obj);
    // obj.username = 'lisi'
    // console.log('new',obj);

    // [] 如果里面的时候一个变量 可以直接写 o[user1]
    // 这里面的user1 就是一个变量
    // o['user1'] =>{user1:'zhangsan'}
    // let user1 = 'username'; 
    // let o = {}; /* => {username:'zhangsan'} */
    // o[user1] = 'zhangsan'
复制代码

/* 基于Object的方式创建对象 */

/* Object 类 */

/* obj 实例化出来的对象 */

// let obj = new Object();

// obj.name = '涛涛';

// obj.age = '30';

// obj.playGame = function (){

// document.write('我nba2k 超级溜');

// }

// document.write(obj.name + '
');

// document.write(obj.age + '
');

// obj.playGame();

/* 对象字面量 */

    /* 对象字面量
    对象定义的一种简写形式
    简化创建包含大量属性的对象的过程
    在为函数传递大量可选参数时,可考虑使用对象字面量 */
    
  <!-- 构造函数的方式 -->
<script>
    /* obj是Object new出来的一个实例化对象 */
    // let obj = new Object()
    // obj.name = 'taotao'
    // obj.age = 30
    // obj.kaiche = function (){
    //     document.write( `${obj.name}--年纪${obj.age} 会开车` );
    // }
    // obj.kaiche();

    let obj = {
        "name":"taotao",
        "age":30,
        "kaiche":function (){
            console.log('this',this);
            document.write( `${this.name}--年纪${this.age} 会开车` );
        }
    }
    /* this是谁调用就是谁的  */
    obj.kaiche()
    console.log(obj);
    /* 对象字面量 */
    /* 对象定义的一种简写形式 */
    /* 简化创建包含大量属性的对象的过程 */
    /* 在为函数传递大量可选参数时,可考虑使用对象字面量 */


作者:前端小帅帅
链接:juejin.cn/post/705192… 来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。