对象的字面量 var obj={} 创建实例对象 var obj=new Object() 工厂模式 function cPerson(name,sex,age){ var o = new Object(); o.name = name; o.sex = sex; o.age = age; o.show = function(){ console.log(this.name,this.age,this.sex); } return o; } var p1 = cPerson('谦龙','男','…
对象的字面量 var obj={}:创建实例对象 var obj=new Object();构造函数模式 function fn(){}, new fn();工厂模式:用一个函数,通过传递参数返回对象.function fn(params){var obj=new Object();obj.params=params;return obj;},fn(params);原型模式:function clock(hour){}fn.prototype.hour=;new clock();…
JS 中,面向对象有几种写法.归纳下,大概有下面这几种:工厂模式,构造函数模式,原型模式,构造函数与原型模式的混合使用,原型链继承,借用构造函数继承. 一.工厂模式 function person (name,age,jpb){ var o={};//定义o这个对象 o.name=name; o.age=age; o.job=job; o.sayName=function(){ console.log(this.name); } return o; } var demo=person('tj',…
/** * 顺便重温一下对象的创建方式 * 代码简单说明问题就好 * 概念性的东西这里就不提了,只加上自己简单理解 */ /** * 工厂模式,就是将手动的创建细节封装在一个方法里, * return出来一个实例. * 所谓工厂就是封装创建工程,得到实例. * 缺点:不能判断对象类型,因为得到的类型都是Object, * 不能知道是否createPerson的实例 * 是否某对象的实例的判断其实就是实例的原型是否指向对象 * */ function createPerson(name){ var…
非常长一段时间看网上大神的JS代码特别吃力.那种面向对象的写法方式让人看得云里来雾里去.于是就研究了一下JS面向对象.因为是初学,就将自己在网上找到的资料整理一下,作为记忆. js面向对象的5种写方法:(来自http://www.iteye.com/topic/434462) 首先 定义circle类,拥有成员变量r.常量PI和计算面积的成员函数area(): //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; Circ…
1.new 操作符 + Object 创建对象 var person = new Object(); person.name = "lisi"; person.age = 21; person.family = ["lida","lier","wangwu"]; person.say = function(){ alert(this.name); } 2.字面式创建对象 var person ={ name: "li…
原型模式(Prototype Pattern) ——.NET设计模式系列之六 Terrylee,2006年1月 概述 在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构.这时如果用工厂模式,则与产品类等级结构平行的工厂方法类也要随着这种变化而变化,显然不大合适.那么如何封装这种动态的变化?从而使依赖于这些易变对象的客户程序不随着产品类变化? 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 结构图 Prototype模式结构图 生活中的例子 Pr…
文章地址: https://www.cnblogs.com/sandraryan/ 创建对象 创建对象的三种方式 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象 1. 调用系统的构造函数创建对象(又称为实例化一个对象) var obj = new Object(); // 添加属性,方法 obj.name = 'jack'; obj.age = 20; obj.eat = function(){ //匿名函数 console.log('hi'); } // 调用属性/方法 cons…
普通方法创建对象 var obj = { name:"猪八戒", sayname:function () { alert(this.name); } } var obj1 = { name:"沙和尚", sayname:function () { alert(this.name); } } var obj2 = { name:"孙悟空", sayname:function () { alert(this.name); } } obj.saynam…
面向对象就是把属性和操作属性的方法放在一起作为一个相互依存的整体--对象,即拥有类的概念,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性! ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值 对象 或者函数".这就是说对象是一组没有特定顺序的值,其中值可以是数据或者函数. 虽然Object构造函数或对象字面量都可以创建单个对象,但这些方式有个明显的缺点,那就是使用同一个接口创造很多对象,会产生大量的重复代码.所以产生了下面几种模式. 1 工厂模式 fu…