javascript 面向对象基础(一)对象组成及函数封装

本文深入讲解了面向对象编程的基本概念,包括抽象、封装、继承和多态等特性,并通过实例展示了如何使用构造函数和原型来实现对象的创建及方法的共享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 *过程式编程
 *面向对象写法
 *	面向对象编程的特点
 *		-抽象:抓住问题的核心
 *		-封装性:只能通过对象来访问
 *		-继承性:从已有对象上继承出新的对象-复用
 *  	-多太:多对象的不同形态
 *
 * 对象的组成
 * 		对象下面的变量叫做对象的属性
 * 	 	arr.xxx
 * 	  	对象下面的函数叫做对象的方法
 * 	   	arr.xxx = function(){}
 * 	    arr.xxx()
 *
 *  工厂方式:函数封装
 *  	当new去调用一个函数:这个时候函数中的this就是创建出来的对象,而且函数的返回值就是this(隐式返回)
 *  	new后面的函数叫做构造函数
 */
var obj = {};
var obj = new object()
obj.name = "owl";
obj.showname = function(){
	alert(this.name);
}
// 改造1
function createName(name){
	var obj = new Object();
	obj.name = name;
	obj.showname = function(){
		alert(obj.name)
	}
	return obj;
}
createName("owl").showname();

// 改造2
function CreateName(name){
	this.name = name;
	this.showname = function(){
		alert(name);
	}
	// return this  默认返回
}
var p = new CreateName("owl2");
p.showname();
////////////////////////////////////////////////////////////
/**
 *原型:去改写对象下面公用的方法或者属性,让公用的方法或者属性在内存中存在一份(提高性能)
 */

// 改造2
function CreateName(name){
	this.name = name;
	this.showname = function(){
		alert(this.name);
	}
	// return this  默认返回
}
var p1 = new CreateName("owl2");
var p2 = new CreateName("owl2");
alert(p1.showname); //function(){alert(this.name)}
alert(p1.showname == p2.showname); //false
//解释
var a = 5;
var b = a;
b += 3;
alert(b); //8
alert(a); //5	基本类型:赋值的时候只是值的复制

var a = [1,2,3];
var b = [1,2,3];
b.push(4);
alert(b); //[1,2,3,4]
alert(a); //[1,2,3,4]
// 对象类型:赋值不仅是值的复制,而且也是引用的传递
var a = [1,2,3];
var b = a;
var b = [1,2,3,4];
alert(a); //[1,2,3]
alert(b); //[1,2,3,4]

//基本类型比较:值相同就可以
var a = 5;
var b = 5;
alert(a == b);	//true 
//对象类型比较:值和引用都相同才行
var a = [1,2,3];
var b = [1,2,3];
alert(a == b); //false
<pre name="code" class="javascript">/**
 *原型:去改写对象下面公用的方法或者属性,让公用的方法或者属性在内存中存在一份(提高性能)
 *原型:可以看做css中的class
 *普通方法:可以看做css中的style
 *
 * 原型:property:要写在构造函数的下面
 *
 * 
 */
//特点一
// var arr = [];
// arr.number = 10;
// Array.prototype.number = 20;
// alert(arr.number);	//10

//特点二
var arr1 = [1,2,3,4];
Array.prototype.sum = function(){
	var result = 0;
	for(var i=0;i<this.length;i++){
		result += this[i];
	}
	return result;
}
alert( arr1.sum() );

function 构造函数(){
	this.属性;
}
构造函数.原型.方法 = function(){}

var 对象1 = new构造函数();
对象1.方法();





                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值