标签:基本 构造函数 XML bsp his es6 not 面向对象 ati
1.最早的声明方式
let person=new Objiect{
person.name="张山";
person.age=18;
person.say=function(){
console.log("my name is"+person.name+"年龄是"+person.age);
}
}
console.log(person.name);
person.say();
这种方式的缺点是没有对函数进行封装,每次创建对象都会书写大量的代码,现在已经废弃了
2.字面量创建对象(json),使用一对大括弧
let person={
name:"张三",
age:18
}
这种方式书写起来更加简便,但是本质上和Object是类似的,没有进行封装。但是这种方法不仅没有被废弃,反而现在非常的火,基本快要替代XML
使用这种方式创建的对象有一个名字叫做JSON,全称JavaScript Object Notation,翻译成中文是JavaScript对象交换格式,这个JSON主要是做数据的传输。
XML也是用于数据的传输,但是XML的解析非常的麻烦,有很多无用标签,所以已经逐渐被JSON所替代
3.自定义构造函数创建对象
let Person=function(name,age){
this.name=name;
this.age=age;
this.say=function(){
console.log(this.name);
}
}
let zhangsan=new Person("张三",18);
console.log(zhangsan.age);
zhangsan.say();
使用自定义构造函数以后,实例化对象不需要再一次书写name,age等属性,只需要通过一个关键字new实例化出来一个就可以了。这种写法更加接近其他的高级语言。
但是这种方式还是有一个缺点,那就是方法对于每个对象来说是公用的。所以有一份就可以了,不需要每个对象里面都有一份这个相同的方法
4.构造函数+原型方法
let Person=function(name,age){
this.name=name;
this.age=age;
}
Person.prototype.say=function(){
console.log(this.name);
}
let zhangsan=new Person("张三",18);
console.log(zhangsan.age);
zhangsan.say();
这种方式的核心理念就是将共同的方法部分写在了原型对象上面。之后实例化出来的每个对象都共享这个原型方法
5.ES6中创建对象的方法(类)
class Person{
//构造器函数,由于初始化函数
constructor(name ,age){
this.name=name;
this.age=age;
}
//原型方法
say(){
console.log(this.name)
}
}
let zhangsan=new Person("张三",18);
console.log(zhangsan.age);
zhangsan.say();
标签:基本 构造函数 XML bsp his es6 not 面向对象 ati
原文地址:http://www.cnblogs.com/AndHowAreYou/p/7823417.html