js面向对象(1)---如何创建对象
JavaScript是一个基于对象的编程语言,几乎所有的操作都涉及到对象 可是他又不是一个真正的面向对象语言 因为缺少 class(类) 新的es6规范 增加了class类 可以更方便的声明和继承一个对象的属性和方法 本篇只是对es5中js对象的一个总结 关于ess6的新特性在后面会有介绍
//最开始的对象编程 实例化出来的对象之间没有联系 存在重复声明
/* var person1={}
person1.name='jack'
person1.age=15
var person2={}
person2.name='bobo'
person2.age=20
console.log(person1)
console.log(person2)*/
//构造函数 实例对象属性都基于构造函数的属性 会重复声明占内存
/* function person(name,age){
this.name=name
this.age=age
this.sex=function(){
alert('不告诉你')
}
}
var person1=new person('jack',15)
var person2=new person('bobo',20)
console.log(person1.name)//jack
console.log(person2.age)//20
console.log(person1.constructor==person)//true 实例对象person1的构造函数
console.log(person2.constructor==person)//true 实例对象person2的构造函数
console.log(person1 instanceof person)//true 实例对象和原型对象的关系
console.log(person2 instanceof person)//true
console.log(person2.sex == person1.sex)//false 实例化之后的对象指向不同的内存位置
*/
//prototype 面向对象的模式
function person(name,age){
this.name=name
this.age=age
}
person.prototype.sex=function(){
alert('不告诉你')
}
var person1=new person('jack',15)
var person2=new person('bobo',20)
console.log(person1.sex==person2.sex)//true 继承了同一个原型对象的prototype