ES6

解构参数 - Destructured Parameters
'use strict';

function breakfast(dessert,drink,{location,resurant}={}) {
  console.log(dessert,drink,location,resurant);
}
breakfast("cake","milk",{location:"云南",resurant:"小胡胡"});
//cake milk 云南 小胡胡
.函数的名字-name属性
function breakfast () {
}
console.log(breakfast.name);//breakfast

let  breakfast = function() {
}
console.log(breakfast.name);//breakfast


let  breakfast = function superBreakfast() {
}
console.log(breakfast.name);//superBreakfast
箭头函数
let breakfast = dessert => dessert;

//相当于下面这段代码
var breakfast = function breakfast(dessert) {
  return dessert;
}

//多参数
let breakfast = (dessert,drink) => dessert+drink;
//相当于下面这段代码
var breakfast = function breakfast(dessert,drink) {
    return dessert+drink;
}
//如果函数不是简单的返回参数,具体执行写在大括号中
let breakfast = (dessert,drink) => {};
对象表达式
let dessert = "cake",drink = "milk";
let food = {
  dessert: dessert,
  drink: drink
}
console.log(food);//{ dessert: 'cake', drink: 'milk' }

let dessert = "cake",drink = "milk";
let food = {
    dessert,
    drink,
    breakfast() {
    }
}
console.log(food);
//{ dessert: 'cake',
//  drink: 'milk',
//  breakfast: [Function: breakfast] }
对象属性名
let food = {};

food.dessert = "cake";
console.log(food);//{ dessert: 'cake' }

let food = {};

food.dessert = "cake";
food.hot drink = "tea";//报错 Unexpected identifier
console.log(food);

//那如果我们想写入的属性中带有空格
//方法一:
let food = {};
food.dessert = "cake";
food['hot drink'] = "tea";
console.log(food);

方法二:
let food = {};
var drink = 'hot drink';
food.dessert = "cake";
food[drink] = "tea";
console.log(food);
对比两个值是否相等

这里写图片描述

在对比值是否相等的情况下我们会遇到上面这种情况,那我们该怎么办嘞?
这里写图片描述

将一个对象中的属性复制到另一个对象中去
let breakfast = {};
Object.assign(
  breakfast,
  {drink: 'bear'}
);
console.log(breakfast);  //{ drink: 'bear' }
设置对象的设置对象的 prototype - Object.setPrototypeOf()
let breakfast = {
    getDrink(){
        return "tea";
    }
};
let  dinner = {
    getDrink(){
        return "bear";
    }
};

let sunday = Object.create(breakfast); 
console.log(sunday.getDrink())//tea
console.log(Object.getPrototypeOf(sunday) === breakfast);//true

Object.setPrototypeOf(sunday,dinner);
console.log(sunday.getDrink());//bear
console.log(Object.getPrototypeOf(sunday) === dinner);//true
proto
let breakfast = {
    getDrink(){
        return "tea";
    }
};
let  dinner = {
    getDrink(){
        return "bear";
    }
};
let sunday = {
    __proto__:breakfast
};
console.log(sunday.getDrink());//tea
console.log(Object.getPrototypeOf(sunday) === breakfast);//true
sunday.__proto__ = dinner;
console.log(sunday.getDrink());//bear
console.log(Object.getPrototypeOf(sunday) === dinner);//true
super
let breakfast = {
    getDrink(){
        return "tea";
    }
};
let  dinner = {
    getDrink(){
        return "bear";
    }
};

let sunday = {
    __proto__:breakfast,
    getDrink(){
        return super.getDrink() +"和"+ "milk";
    }
};
console.log(sunday.getDrink());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值