js面向对象-创建对象

工厂模式

工厂模式通过在函数中创建一个对象(原材料),然后通过给这个对象添加属性和方法(加工),最后返回这个对象(出厂)。

// 1.工厂模式
function createPerson(name,age,job) {
	//1.原材料
	var o = new Object();
	//2.加工
	o.name = name;
	o.age = age;
	o.job = job;
	o.sayName = function() {
		alert(this.name);
	};

	//3.出厂
	return o;
}
var yoomin = createPerson(‘yoomin‘,24,‘programmer‘);  // 调用,没有new

  构造函数模式

构造函数是通过给this添加属性和方法,在new的时候才返回一个对象,构造函数本身是没有返回值的。

// 2.构造函数模式
function Person(name,age,job) {
	this.name = name;
	this.age = age;
	this.job = job;
	this.sayAge = function() {
		alert(this.age);
	}
}
var Jay = new Person(‘Jay‘,30,‘singer‘);  //调用

构造函数方式与原型方式组合

使用构造函数方式定义属性,用原型方式定义方法和共享变量:

构造函数定义属性:

function Person(name,age,job) {
	// 构造函数模式定义实例属性
	this.name = name;
	this.age = age;
	this.job = job;
}

  原型方式定义方法:

Person.prototype = {
	//原型模式定义方法和共享属性
	constructor: Person,  //重写原型改变了constructor,修正回来
	sayName:function() {
		alert(this.name);
	},
	sayJob:function() {
		alert(this.job);
	}
}

  注意:用字面量方式定义prototype,会改变prototype的constructor指向,需要修正。

创建对象:

var Kelly = new Person(‘Kelly‘,35,‘singer‘);  //调用
Kelly.sayName();  //Kelly

  

时间: 2024-11-05 19:51:34

js面向对象-创建对象的相关文章

js面向对象总结

JS面向对象--创建对象 1.对象的创建及常用的操作 第一种是使用new运算符 例子:var obj = object();     obj.name = "puyao";     obj.age = 20;     obj.address = "四川成都";第二种是我们常用的字面量 例子:var obj ={        name ="puyao";        age = 20;        address = "四川成都&q

js面向对象程序设置——创建对象

<script type="text/javascript">            //工厂方式        //1.原始方式        /* var objCar=new Object();        objCar.name="劳斯莱斯";        objCar.color="blue";        objCar.showColor = function() {          alert(this.colo

浅谈JS面向对象之创建对象

hello,everybody,今天要探讨的问题是JS面向对象,其实面向对象呢呢,一般是在大型项目上会采用,不过了解它对我们理解JS语言是很大的意义. 首先什么是面向对象编程(oop),就是用对象的思想去写代码,那什么是对象呢,其实我们一直在用,像数组 Array  时间 Date 都是对象,并且这些对象是系统创建的,所以叫系统对象,而我们自己当然也可以创建对象,一般对象有两部分组成: 1 方法 (动态的 对象下面的函数)比如Array 的push(),sort()方法 2  属性 (静态的,相

js面向对象学习 - 对象概念及创建对象

原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数据属性和访问器属性. 1.数据属性又包含 Configurable //表示能否通过delete删除,默认为true: Enumerable //表示能否通过for-in循环返回属性,默认为true; Writable  //表示能否修改属性的值,默认为true; Value            

简单粗暴地理解js原型链--js面向对象编程

简单粗暴地理解js原型链--js面向对象编程 原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧,想点与代码无关的事,比如人.妖以及人妖. 1)人是人他妈生的,妖是妖他妈生的.人和妖都是对象实例,而人他妈和妖他妈就是原型.原型也是对象,叫原型对象. 2)人他妈和人他爸啪啪啪能生出一堆人宝宝.妖他妈和妖他爸啪啪啪能生出一堆妖宝宝,啪啪啪就是构造函数,俗

js面向对象深入理解

js面向对象深入理解 ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,ECMAScript 没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. 一.创建对象 创建一个对象,然后给这个对象新建属性和方法. var box = new Object(); //创建一个Object 对象 box.name = 'Lee'; //创建一个name 属性并赋值 b

5月17日上课笔记-js面向对象

二.js面向对象 js创建对象: var 对象名称 = new Object(); person.name = "小明"; //姓名 person.age = 18; person.location = "合肥"; person.showName = function(){ alert(this.name); } //调用属性 //alert(person.name); person.showName(); 字面量创建对象: JSON格式 var person={

js 面向对象的基本概念和基本使用方法

js 面向对象的基本概念和基本使用方法 -> js 是不是一个面向对象的语言? 不是:与传统面向对象的理论语言有矛盾.C#,Java. 是:js里面到处都是对象,数组,时间,正则- 和 DOM.也可以像传统面向对象的语言那样用 new 的方式创建对象 -> js是一个基于对象的多范式编程语言. 面向过程的方式 面向对象的方式 函数式 递归与链式 例: Jquery 链式编程 面向对象的概念 对象的定义:无序属性的集合,其属性可以包含基本值,对象或是函数 1. 面向:将脸朝向- -> 关注

js 面向对象 定义对象

js面向对象看了很多,却没有完全真正的理解,总是停留在一定的阶段,这次再认真看一下. 面向对象包含两种:定义类或对象:继承机制:都是通过工厂模式,构造函数,原型链,混合方法这四个阶段,原理也一样,只是实现细节有点不同 定义类或对象教程:http://www.w3school.com.cn/js/pro_js_object_defining.asp 思路:工厂模式--构造函数--原型链--混合方式,注意每个阶段的具体写法和不足 工厂模式(四个阶段):原始--工厂--传参--共享方法:方法名小写:不