ES6对象方法
传统// // 传统表示 // let person = { // 'name':'zs', // 'say': function(){ // console.log('123') // } // } // person.say() var name = 'zs'; var age = 18; // let person = { // name : name, // age : age, // } // console.log(person)
ES6中的简写
var name = '李四'; var age = 18; var person1 = { name, age, say() { console.log('ES6') } }; console.log(person1); //{name: "李四", age: 18, say: ƒ}
属性名的更新 用字面量定义一个对象的时候,可以用表达式作为对象的属性名或者方法名。
var f = 'first'; var n = 'Name'; var s = 'say'; var h = 'Hello'; var person = { [f + n]: 'zhang', [s + h]() { return '你好吗' } }; console.log(person.firstName) //zhang console.log(person.sayHello()) //你好吗
Object.is()函数 比较两个值是否严格相等,或者说全等
// // Object.is 判断两个值是不是相等 相当于=== // var str = '12'; // var num = 12; // console.log(str == num) //true // console.log(str === num) //false // console.log(Object.is(str, num))//false
Object.assign() 函数 将源对象的属性赋值到目标对象上。源对象可以是一个或者一个以上,而目标对象只有一个。
//Object.assign 相当于concat // let target = {'a':1} // let origin = {'b':2,'c':3} // Object.assign(target,origin); // console.log(target) //{'a':1,'b':2,'c':3}
Object.getPrototypeOf() 函数 获取一个对象的prototype属性。
function Person(){ } Person.prototype.name = 'zs' Person.prototype = { say(){ console.log('hello') } } let allen = new Person(); allen.say() console.log(Object.getPrototypeOf(allen) ) //{say: ƒ}
Object.setPrototypeOf() 函数 设置一个对象的prototype属性
//Object.setPrototypeOf() 设置原型属性 (接上) Object.setPrototypeOf(allen,{say(){console.log('hi')}}) allen.say()
Javascript中面向对象 将共用属性和方法写在函数的原型中
function Dog(name) { this.name = name; } Dog.prototype = { 'type': '动物', 'say': function () { console.log('名字叫' + this.name); } }; var dog = new Dog('旺财'); dog.say(); //名字叫旺财