JavaScript创建对象的四种方式
来源:互联网 发布:小学生机器人编程教程 编辑:程序博客网 时间:2024/05/20 06:22
JavaScript创建对象的四种方式
- 浏览:286
- |
- 更新:2014-07-22 09:24
- |
- 标签:javascript
百度师傅为你的电脑系统,选一个靠谱师傅!
1、对已有对象进行扩充方法和属性
var object = new Object();
object.name = "zhangsan";//每个对象需要写这些语句
object.sayName = function(name){//每个对象需要写这些语句
this.name = name;
};
object.sayName("lisi");
alert(object.name);
2、工厂方式创建对象
function createObject() {
var object = new Object();
object.username = "zhangsan";
object.password = "123456";
object.get = function(){
alert(this.username + "," + this.password);
}
return object;
}
var object1 = createObject();
var object2 = createObject();
object1.get();
object2.get();
// 带参数的构造方法
function createObject(username, password){
var object = new Object();
object.username = username;
object.password = password;
object.get = function(){//缺点是,多少个对象则方法就有多少个
alert(this.username + ", " + this.password);
}
return object;
}
var object1 = createObject("zhangsan",123456);
object1.get();
// 最佳改进方式
function get(){//使该函数被多个对象共享
alert(this.username + ", " + this.password);
}
function createObject(username, password){//创建对象
var object = new Object();
object.username = username;
object.password = password;
object.get = get;
return object;
}
var object1 = createObject("zhangsan", "123456");
var object2 = createObject("wangwu", "654321");
object1.get();
object2.get();
3、构造函数方式创建对象
function Person(){
//在执行第一行代码欠,js引擎会为我们生成一个对象
this.username = "zhangsan";
this.password = "123";
this.getInfo = function(){
alert(this.username + ", " + this.password);
}
//此处有一个隐藏的return语句,用于将之前生成对象返回。
}
var p1 = new Person();
p1.getInfo();
//带参数
function Person(username, password){
this.username = username;
this.password = password;
this.getInfo = function(){
alert(this.username + ", " + this.password);
}
}
var p1 = new Person("zhangsan","1234546");
p1.getInfo();
4、原型(“prototype”)方式
function Person(){}
Person.prototype.username = "zhangsan";
Person.prototype.password = "123456";
Person.prototype.getInfo = function(){
alert(this.username + ", " + this.password);
}
var person = new Person();
var person2 = new Person();
person.username = "haha";
person.getInfo();
person2.getInfo();
//单纯使用原型方式定义对象无法在构造函数中为属性赋值,只能在对象生成后再去改变属性值
function Person(){}
Person.prototype.username = new Array();
Person.prototype.password = "123456";
Person.prototype.getInfo = function(){
alert(this.username + ", " + this.password);
}
var person = new Person();
var person2 = new Person();
person.username.push("zhangsan");
person.username.push("lisi");
person.password = "321";
person.getInfo();
person2.getInfo();
//执行结果:zhangsan lisi 321, zhangsan lisi 123456
/*
p1 ————> Person ——> username username是一个对象的引用,值会影响p1,p2
\ /
/ \
p2 ————> Person ——> password password是一个常量
*/
5、综合方式(原型+构造函数方式搭配)
function Person(){
this.username = new Array();//不被多个对象共享
this.password = "123";
}
Person.prototype.getInfo = function()//被多个对象共享
{
alert(this.username + "," + this.password);
}
var p1 = new Person();
var p2 = new Person();
p1.username.push("zhangsan");
p2.username.push("lisi");
p1.getInfo();
p2.getInfo();
5、动态原型方式
function Person(){
this.username = "zhangsan";
this.password = "123";
//通过标志量让所有的对象共享方法
if(typeof Person.flag == "undefined"){
alert("prototype");
Person.prototype.getInfo = function() {
alert(this.username + ", " + this.password);
}
Person.flag = true;
}
}
var p = new Person();
var p2 = new Person();
p.getInfo();
p2.getInfo();
- javascript的四种创建对象方式
- JavaScript创建对象的四种方式
- JavaScript创建对象的四种方式
- java创建对象的四种方式
- Java 创建对象的四种方式
- Java创建对象的四种方式
- Java创建对象的四种方式
- 创建对象的四种方式
- Java 创建对象的四种方式
- java创建对象的四种方式
- Java 创建对象的四种方式
- java创建对象的四种方式
- JAVA创建对象的四种方式
- 创建对象的四种方式
- JAVASCRIPT定义对象的四种方式
- JAVASCRIPT定义对象的四种方式
- JavaScript创建对象的四种方法
- Javascript创建对象的两种方式
- C++基础_03
- 跟我学Redis 2.4 Jedis的基本操作之Sorted Set
- MVC简介
- java、jsp连接数据库,可当模板
- 稳定排序和不稳定排序
- JavaScript创建对象的四种方式
- REDIS 学习(10)流程图解使用redis实现分布式锁
- 跟我学Redis 2.5 Jedis的基本操作之Hash
- HTTP & RESTFUL
- UItableView Cell复用 重叠问题
- SpringMVC入门到理解之开门篇
- 在自己的网页中引入百度地图
- Maven编译Flume-ng 1.5.0
- include和require的区别