概述
面向对象的语言有一个标志,那就是他们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。
对象的创建
1、工厂模式
//工厂模式
function getPerson(name,age){
//定义age不能直接访问
var person = {
name:name,
_age:age,
getName:function(){
return this.name;
}
};
Object.defineProperties(person,{
_age:{
value:age
},
age:{
get:function(){
return this._age;
},
set:function(age){
this._age = age;
}
}
});
return person;
}
var p2 = getPerson("person2",12);
console.log(p2.getName());2、构造函数模式 //构造函数模式
function Person(name,age){
this.name = name;
this.age = age;
this.getName = getName;
}
var p1 = new Person("person1",12);
console.log(p1.getName());3、原型模式//原型模式
function People(){};
People.prototype = {
name:"",
age:0,
getName:getName
}
var p3 = new People();
p3.age = 12;
p3.name="person3";
console.log(p3.getName());
console.log("sex" in p3);4、构造函数+原型//*构造函数+原型模式*//
function Student(name,age){
this.name = name;
this.age = age;
}
Student.prototype ={
constructor:Student,
getName:getName
}
var stu = new Student("student",18);
console.log(stu.getName());传播GIS知识 | 交流GIS经验 | 分享GIS价值 | 专注GIS发展
技术博客
http://blog.csdn.net/gisshixisheng
在线教程
http://edu.csdn.net/course/detail/799
Github
https://github.com/lzugis/
联系方式
q q:1004740957
e-mail:niujp08@qq.com
公众号:lzugis15
Q Q 群:452117357(webgis)
337469080(Android)
浙公网安备 33010602011771号