您的位置:首页 > 其它

ECMA2015(ES6)简单入门-2-参数默认-...-解构参数-__proto__

2017-04-14 23:07 316 查看
默认参数设置

//es6里可以给定义的函数接受的参数设置默认的值;

//如果不去指定函数参数的值 那函数调用的时候就使用默认的值

function breakfast_1(dessert=”apple”,drink=”tea”){//指定默认值 直接在形参的后面赋值

return
${dessert}+and+${drink}
;

}

console.log(

breakfast_1()

);

console.log(“……现在设置他们的值后……”)

console.log(

breakfast_1(“X倒日本”,”R倒棒子”)

);

...es6中心添加的操作符号 可以叫做spread或者rest


let fruit=[“apple”,”banana”],

foods=[“姑娘”,”小伙”,”法海”,…fruit];//fruit展开放入到foods中

//展开

console.log(fruit);//输出的是数组

console.log(…fruit);//单独输出的是数组里的每一个值 相当于把数组展开了

console.log(foods);

//…rest 剩余操作符 一般用在函数的参数里面

function breakfast_2(dessert,drink,…food){

//让函数支持更多的参数

console.log(dessert,drink,food);//其余的参数放在了一个叫food的数组里

console.log(“——–下面的是展开的———”);

console.log(dessert,drink,…food);

}

breakfast_2(“apple”,”tea”,”tea1”,”tea2”,”tea3”);

解构参数


function breakfast_3(man,woman,{location,restaurant}={}){

console.log(man+”和”+woman+”在”+location+restaurant+”洗澡”);

}

breakfast_3(“乔瑞”,”姑娘”,{location:”上海”,restaurant:”必胜客”});

function breakfast_4(man,woman,{location,restaurant}={}){

//es6给函数添加了个name属性 能得到函数的名字

}

console.log(

breakfast_4.name

);

//如果是匿名函数 函数名字就是定义的变量

// 如果是定义变量的有名字函数 那么打印出来的还是函数的名字而不是定义的变量

let breakfast= function breakfast_5(man,woman,{location,restaurant}={}){

//es6给函数添加了个name属性 能得到函数的名字

};

console.log(

breakfast.name//因为breakfast_5它的优先级更高

);

箭头函数  使用箭头定义函数的方式


let breakfast_6 = dessert => dessert;

//let定义变量 变量名 =函数开始接受的参数 => 函数返回的值

//普通的写法

var breakfast_7 =function breakfast_7(dessert) {

return dessert

};

// 如果有多个参数

let breakfast_8 = (dessert,drink) => dessert + dessert;

// 如果无参数

let breakfast_9 = () => console.log(“this 里面没参数”);

breakfast_9();

//let 变量=变量值

let dessert=”cake”,drink=”coco”;

foods={//dessert属性:dessert属性值


// 在对象里面添加跟变量名一样的属性的话,并且属性的值就是变量表示的值;可以直接把:以后都去掉

dessert,

drink,

breackfast_old:function(){alert(“old”)},// 以前的写法

breackfast_now(){alert(“now”)}// 现在的写法

};

foods.breackfast_old();

foods.breackfast_now();

对象属性名


let man={},drinks=”name little”;

man.name=”make”;

//属性名中间不能有空格man.name little=”daead”

// 如果有空格可以用方括号+””

man[“name little”]=”daead”;

man[drinks]=”daead”;//这和上行的代码是一样的意思

//判断两个东西是不是同一东西nan=nan,+0!=-0

console.log(

Object.is([],Array)

);

Object.assign()把对象的值赋值到另一个对象里

let breakfast_10 = {};

Object.assign(

breakfast_10,//接受者

{drink:”beer”}//复制来源

)

console.log(breakfast_10);

let breakfast_11 = {

getDrink () {

return “coffee”

}

};

let dinner = {

getDrink(){

return “beer”;

}

};

let sunday={

使用_proto_设置继承别的对象里的方法

proto:breakfast_11,//这个sunday就拥有了breakfast_11下的getDrink的方法

//如果想在sunday里面重新定义getDrink方法 覆盖掉breakfast_11对象里的getDrink方法

//并且想在这个sunday的getDrink方法里得到breakfast_11的getDrink方法返回来的值

// super+方法名字 得到方法返回来的东西

getDrink(){

return super.getDrink()+”wahahahahahh”;

//执行breakfast_11对象里面的getDrink方法去得到返回来的值

}

};

console.log(sunday.getDrink());

console.log(Object.getPrototypeOf(sunday) === breakfast_11);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息