JS可以说一切都是对象,面对对象的程序设计
看了javascript高级程序设计3的第六章面向对象的程序设计,里面的知识,高级程序设计确实非常好。
创建对象的方法
1.普通数据型
var person = {
name: '小敏',
age: '18',
sex: 'famle',
}
2.带有方法型
①工厂模式
/**
*闭包,无法知道对象的类型
*/
var F = function(){
var obj = new Object();
obj.name = "小米";
obj.sayname = function(){
console.log(obj.name);
}
return obj;
}
var obj = F();
②构造函数模式
/**
*不节省内存
*/
var F = function(){
this.name = "小米";
this.sayname = function(){
console.log(this.name);
}
}
var obj = new F();
③原型模式
/**
*好处:节省内存;坏处:对象引用会出问题,公共可以访问
*/
var F = function(){};
F.prototype = {
name: '小米',
friends: ['小明', '小李'],
sayname: function(){
console.log(this.name);
},
}
var obj = new F();
//例子
var obj1 = new F();
obj.friends.push('小张');
console.log(obj.friends); //['小明','小李','小张']
console.log(obj1.friends); //['小明','小李','小张']
//对象的赋值倒是不会改变原型的数据,只会改变本实例的数据
④构造函数模式和原型模式结合
/**
*一般来说各实例有自己的数据变量,共有了相同的方法,有被框架使用,如2D游戏框架phaser.js就是按照这个
*模式来的
*/
var F = function(){
this.name = "小米";
}
F.prototype = {
sayname: function(){
console.log(this.name);
},
}