js面向对象的几种方式

第一种模式:工厂方式

var lev=function(){ return "脚本之家"; };

function Parent(){ var Child = new Object(); Child.name="脚本"; Child.age="4"; Child.lev=lev; return Child; };

var x = Parent();

alert(x.name);

alert(x.lev());

第二种模式:构造函数方式

var lev=function(){ return "脚本之家"; };

function Parent(){ this.name="脚本"; this.age="30"; this.lev=lev; };

var x =new Parent();

alert(x.name);

alert(x.lev());

第三种模式:原型模式

var lev=function(){ return "脚本之家"; };

function Parent(){ };

Parent.prototype.name="李小龙";

Parent.prototype.age="30";

Parent.prototype.lev=lev;

var x =new Parent();

alert(x.name);

alert(x.lev());

第四种模式:混合的构造函数,原型方式(推荐)

function Parent(){ this.name="脚本"; this.age=4; };

Parent.prototype.lev=function(){ return this.name; };

var x =new Parent();

alert(x.lev());

第五种模式:动态原型方式

function Parent(){ this.name="脚本"; this.age=4; if(typeof Parent._lev=="undefined"){

Parent.prototype.lev=function(){ return this.name; } Parent._lev=true; }

};

var x =new Parent();

alert(x.lev());

时间: 2024-10-31 18:16:47

js面向对象的几种方式的相关文章

js面向对象初步探究(上) js面向对象的5种写方法

很长一段时间看网上大神的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; Circl

js创建对象的四种方式以及消耗时间比较

// Property-less object console.time('zoop1'); var zoop = (function (numObjects) { var pooz = Object.create(null); for(var i = 0; i< numObjects; i++) { pooz[i] = Object.create(null); } return pooz; })(1000000); console.timeEnd('zoop1'); // Using Obje

js - 创建对象的几种方式(工厂模式、构造函数模式、原型模式)

原文引用https://www.dazhuanlan.com/2019/08/26/5d62f8b594f10/ 工厂模式 做法:内部创建一个对象,并未对象属性赋值并且返回 缺点:解决创建多个相识对象的问题,但不能识别创建的对象的类型 构造函数模式 做法:直接将属性和方法赋值给 this 对象,没有 return 语句 缺点:对象不是共用方法和属性,每 new 一次对象就要创建一个内存,超出性能消耗 原型模式 做法:通过 prototype 为对象添加属性 缺点:每个实例都共享属性方法,实例中修

js事件处理的3种方式

web前端包含3个技术:html.css.js. html和css的结合是通过style.class.id以及html标签.而js是通过事件来切入html和css的.而浏览器的时间处理有3种方式: 方式一:html事件处理直接将事件函数写在html标签里面如下,如果click事件函数复杂的话直接把函数写在外部onclick直接调用函数名 <input type="button" id="btn" name="btn" onclick=&qu

1在html中添加js代码的三种方式

1.第一种方式:在时间句柄后太假js代码: 例如浏览器弹出对话框; 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 2 "http://www.w3.org/TR/html4/loose.dtd"> 3 <html> 4 <head> 5 <meta http-equiv="Content-Type" content=&qu

第184天:js创建对象的几种方式总结

1.面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 一.创建对象的几种方式 javascript 创建对象简单的来说,无非就是使用内置对象或各种自定义对象,当然还可以使用JSON,但写法有很多,也能混合使用. 1.工厂方式创建对象:面向对象中的封装函数(内置对象) 1 function createPerson(name){ 2 //1.原料 3 var obj=new Object(); 4 //2.

js面向对象的几种写法

有段时间没写js了,复习了一下js相关的东西,把面向对象的部分挑出来做个记录.以下代码综合别的博客,但都是经过自己验证. 1,工厂方式 var Circle = function(){ var obj =  new Object();    obj.PI = 3.14; obj.area = function(r){        return this.PI * r * r;    } return obj;}var c = new Circle();alert(c.area(1.0));//

JS 创建对象的几种方式

面向对象就是把属性和操作属性的方法放在一起作为一个相互依存的整体--对象,即拥有类的概念,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性! ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值 对象 或者函数".这就是说对象是一组没有特定顺序的值,其中值可以是数据或者函数. 虽然Object构造函数或对象字面量都可以创建单个对象,但这些方式有个明显的缺点,那就是使用同一个接口创造很多对象,会产生大量的重复代码.所以产生了下面几种模式. 1 工厂模式 fu

JS创建对象的几种方式详解

Js是一门面向对象的语言,里面没有类的思想,所以直接是创建对象,下面介绍几种创建对象的方法: 1.对象字面量的方法:记住键值对格式:{key:value,key :value} 实例: Var obj={name:"演员",move:"长城",age:"18"} 如果想再创建一个新的对象,只能重复上面的操作,所以可操作性差,不能被重复使用,造成的直接后果就是代码的冗余度很高 2使用内置的构造函数 object Var obj=new Object