es5的data语法_ES5 常用 语法(object Arrary 函数绑定this指向)

ES object 扩展

ES object 扩展1.

webpack

// ******object 扩展************

//1.

var obj={name:'kebo', sex:'男'}

var obj1 =Object.create(obj,{

age:{

value:25,

writable:true,//可被修改

configurable:true, //可被删除

enumerable:true

}

})

console.log("obj1-----",obj1)

obj1='kebo' // 修改对象的属性

// console.log("obj1-----###",obj1)

// delete obj1 // 删除对象

// console.log(obj1)

for (var i in obj1){

console.log(i)

}

ES object 扩展2.

webpack

// ******object 扩展************

var obj2 ={fistName:'kebe',lastName:'bryant'};

Object.defineProperties(obj2,{

fullName: {

get: function(){ // 获取对应的值 惰性求值 被调用时才执行

return this.fistName + ' ' + this.lastName;

},

set: function(data){ // 监听对象的属性 发送改变是调用

console.log("obj2-------------",data)

var names=data.split(' ')

this.fistName=names[0]

this.lastName=names[1]

return this.fistName + ' ' + this.lastName;

}

},

})

console.log(obj2)

console.log('before',obj2.fullName)

obj2.fullName='kebe kebe';

console.log('after',obj2.fullName)

ES object 扩展3

webpack

// ******object 扩展************

var obj3 ={

fistName:'kebe',

lastName:'bryant',

get function(){ // 获取对应的值 惰性求值 被调用时才执行

return this.fistName + ' ' + this.lastName;

},

set function(data){ // 监听对象的属性 发送改变是调用

console.log("obj2-------------",data)

var names=data.split(' ')

this.fistName=names[0]

this.lastName=names[1]

return this.fistName + ' ' + this.lastName;

}

}

console.log(obj2)

console.log('before',obj2.fullName)

obj2.fullName='kebe kebe';

console.log('after',obj2.fullName)

ES Arrary map, forEach ,filter(返回条件为true 的值)

var arr=[1,5,9,4,465,485,56,25,4,48,54]

console.log('4的下标',arr.indexOf(4))

console.log('4的下标',arr.lastIndexOf(4))

arr.forEach(function(item,index){

console.log("item--",item)

})

var arr1=arr.map((item,index)=>{

return item+10;

})

console.log("arr1--",arr1)

var arr2=arr.filter((item,index)=>{

return item >25;

})

console.log("arr2 大于25的数--",arr2)

ES 函数语法 this指向绑定

var obj1={userName:'kobe'}

function foo1(data) {

console.log(this,data)

}

foo.call(obj1,33) //直接从第二个数据开始穿入

foo.apply(obj1,[33,45]) //第二个参数必须是数组

var bar = foo.bind(obj) //绑定后没有以及执行 返回一个值

console.log('bar',bar)

bar()

console.log('2222222222')

foo.bind(obj)(33666) //加()调用函数 直接从第二个数据开始穿入

var obj1={userName:'kobe'}

setTimeout(function () {

console.log("this---",this)

}.bind(obj1),1000)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值