javaScript 对象

一:JavaScript中的对象

说明:1在JavaScript中,对象被定义为是无序属性的集合。

           2在JavaScript中,没有“类”,因此用于描述对象的“类”称为对象的定义。

二:对象的类型

  可分为:内部对象,宿主对象,自定义对象。

  内部对象:Array,Boolean,Date,Function,Global,Math,等。

  宿主对象:执行JavaScript脚本环境所提供的对象。docment,window,等。

  自定义对象:我们自己定义的对象。

三:创建对象的七种方法

  1最常见的创建无类型对象

 

var book ={
    title:"javascript开发",
    author:"jjlin",
    price: 100,
    introduce:function(){
        document.write("book title:"+this.title+",author:"+this.author+",price:"+this.price+"<hr>");
    }
    
}
book.introduce();


  2派生自Object对象,然后添加属性和方法

 

var ChildObj = new Object();
//添加属性
ChildObj.name ="jjlin";
ChildObj.password="123";
//添加方法
ChildObj.getProperties = function(){
    document.write("name:"+this.name+",pssword:"+this.password+"<hr>");
}

ChildObj.getProperties();

  3采用工厂方式创建对象

function createObject(name,password){
	var object = new Object();
	object.name = name;
	object.password=password;
	
	//多个对象的实例共享一个方法(函数),而不是每一个对象的实例都拥有一个函数对象
	object.getProperties = displayInfo;
	
	return object;
}

function displayInfo(){
	document.write("name:"+this.name+",password:"+this.password+"<hr>");
}

var obj1 = new createObject("jjlin","123");
obj1.getProperties();
var obj2 = new createObject("lin","456");
obj2.getProperties();

  4构造函数方法创建对象

function Person(name,password){
	//在执行第一行代码前,js引擎会首先生成一个当前的对象。
	this.name =name;
	this.password= password;
	this.getProperties = displayInfo;
	//此处隐藏一个return语句,返回之前生成的对象
}

function displayInfo(){
	document.write("name:"+this.name+",pssword:"+this.password+"<hr>");
}

var obj1 = new Person("jjlin","123");
obj1.getProperties();

  5使用原型(prototype)创建对象

//生成的对象会共享原型中的属性,方法
//该方法无法在构造函数中为属性赋值,只能在对象生成后,再改变属性值。
function Person(){}
Person.prototype.name ="lin";
Person.prototype.password = "123";
Person.prototype.getProperties = function(){
	document.write("name:"+this.name+",pssword:"+this.password+"<hr>");
}

var p = new Person();
p.getProperties();

  6使用原型+构造函数方式创建对象

function Person(){
	//使用数组
	this.name = new Array();
	this.password = "123";
}
Person.prototype.getInfo = function(){
	document.write("name:"+this.name+",pssword:"+this.password+"<hr>");
}
var p = new Person();
var p2 = new Person();
p.name.push("jjlin");
p2.name.push("lin");
p.getInfo();
p2.getInfo();

  7动态原型方式创建对象

//在构造函数中通过标志量让所有对象共享一个方法,
//而每个对象拥有自己的属性。
function Person(){
	this.name = "jjlin";
	this.password = "123";
	
	if(typeof Person.flag == "undefined"){
		alert("invoked");
		Person.prototype.getInfo  = function(){
				document.write("name:"+this.name+",pssword:"+this.password+"<hr>");
		}
	}
		Person.flag = true;
}

var p = new Person();
var p2 = new Person();
p2.name = "lin";
p.getInfo();
p2.getInfo();


说明:内容参照赵龙《圣思园JavaScript》视频。






 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值