<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body> </body>
<script>
//实例对象
var per1={
name:"卡卡西",
age:20,
sex:"男",
eat:function(){
console.log("吃拉面");
},
readBook:function(){
console.log("西游记");
}
}
//调用系统的构造函数创建对象
var per2=new Object();
per2.name="大蛇丸";
per2.age=30;
per2.sex="男";
per2.eat=function(){
console.log("吃榴莲");
};
per2.play=function(){
console.log("玩蛇");
}
//自定义构造函数
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
this.play=function(){
console.log("天天打游戏");
};
} var per=new Person("小樱",18,"女");
console.log(per.name);
per.play(); //工程模式创建对象
function creatObject(name,age){
var obj=Object();
obj.name=name;
obj.age=age;
obj.syHi=function(){
console.log("你好");
};
return obj;
} //自定义构造函数和工程模式区别
/**
* 共同点:都是函数,都可以创建对象,都可以传入参数
* 工厂:
* 函数名是小写的
* 有new
* 有返回值
* new之后的对象是当前的对象
*直接调用函数就可以创建对象
*
* 自定义构造函数:
* 函数名是大写的首字母
* 没有new
* 没有返回值
* this是当前对象
* 通过new的方式创建对象
* **/ function Pers(name,age){
this.name=name;
this.age=age;
}
//通过原型来添加方法,解决数据共享,节省内存空间
Pers.prototype.eat=function(){
console.log("吃凉菜");
}
var p1=new Pers("小明",20);
var p2=new Pers("小红",30);
console.log(p1.eat==p2.eat);//结果为真
</script>
</html>

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>

</body>
<script>
//实例对象
var per1={
name:"卡卡西",
age:20,
sex:"男",
eat:function(){
console.log("吃拉面");
},
readBook:function(){
console.log("西游记");
}
}
//调用系统的构造函数创建对象
var per2=new Object();
per2.name="大蛇丸";
per2.age=30;
per2.sex="男";
per2.eat=function(){
console.log("吃榴莲");
};
per2.play=function(){
console.log("玩蛇");
}
//自定义构造函数
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
this.play=function(){
console.log("天天打游戏");
};
}

var per=new Person("小樱",18,"女");
console.log(per.name);
per.play();

//工程模式创建对象
function creatObject(name,age){
var obj=Object();
obj.name=name;
obj.age=age;
obj.syHi=function(){
console.log("你好");
};
return obj;
}

//自定义构造函数和工程模式区别
/**
* 共同点:都是函数,都可以创建对象,都可以传入参数
* 工厂:
* 函数名是小写的
* 有new
* 有返回值
* new之后的对象是当前的对象
*直接调用函数就可以创建对象
*
* 自定义构造函数:
* 函数名是大写的首字母
* 没有new
* 没有返回值
* this是当前对象
* 通过new的方式创建对象
* **/

function Pers(name,age){
this.name=name;
this.age=age;
}
//通过原型来添加方法,解决数据共享,节省内存空间
Pers.prototype.eat=function(){
console.log("吃凉菜");
}
var p1=new Pers("小明",20);
var p2=new Pers("小红",30);
console.log(p1.eat==p2.eat);//结果为真
</script>
</html>

js面向对象编程思想的更多相关文章

  1. 面向对象编程思想(前传)--你必须知道的javascript

    在写面向对象编程思想-设计模式中的js部分的时候发现很多基础知识不了解的话,是很难真正理解和读懂js面向对象的代码.为此,在这里先快速补上.然后继续我们的面向对象编程思想-设计模式. 什么是鸭子类型 ...

  2. 面向对象编程思想(前传)--你必须知道的javascript(转载)

    原文地址:http://www.cnblogs.com/zhaopei/p/6623460.html阅读目录   什么是鸭子类型 javascript的面向对象 封装 继承 多态 原型 this指向 ...

  3. 带你一分钟理解闭包--js面向对象编程

    上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...

  4. 面向对象编程思想(OOP)

    本文我将从面向对象编程思想是如何解决软件开发中各种疑难问题的角度,来讲述我们面向对象编程思想的理解,梳理面向对象四大基本特性.七大设计原则和23种设计模式之间的关系. 软件开发中疑难问题: 软件复杂庞 ...

  5. IT第二十天 - 面向对象编程思想、抽象类、异常处理、程序操作日志记录、本周总结 ★★★

    IT第二十天 上午 面向对象编程思想 1.组装电脑的设计: (1)电脑的组成:显示器+机箱 (2)机箱的组成:电源+主板+硬盘 (3)主板所包含的部件:cpu+内存+PCI接口+usb接口 (4)PC ...

  6. Js面向对象编程

    Js面向对象编程 1.     什么是面向对象编程? 我也不说不清楚什么是面向对象,反正就那么回事吧. 编程有时候是一件很快乐的事,写一些小游戏,用编程的方式玩游戏等等 2.     Js如何定义一个 ...

  7. js原生设计模式——3简单工厂模式\js面向对象编程实例

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装

    接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...

  9. JS面向对象编程(进阶理解)

    JS 面向对象编程 如何创建JS对象 JSON语法声明对象(直接量声明对象) var obj = {}; 使用 Object 创建对象 var obj = new Object(); JS对象可以后期 ...

随机推荐

  1. Python多线程获取返回值

    在使用多线程的时候难免想要获取其操作完的返回值进行其他操作,下面的方法以作参考: 一,首先重写threading类,使其满足调用特定的方法获取其返回值 import threading class M ...

  2. Struts1 工作流程

    一个老项目的维护 , 需要学习一下 Struts1. struts1运行步骤 1.项目初始化:项目启动时加载 web.xml,struts1 的总控制器 ActionServlet 是一个 Servl ...

  3. Jvm dump介绍与使用(内存与线程)

    很多情况下,都会出现dump这个字眼,java虚拟机jvm中也不例外,其中主要包括内存dump.线程dump. 当发现应用内存溢出或长时间使用内存很高的情况下,通过内存dump进行分析可找到原因. 当 ...

  4. Java继承,重写方法时改变方法的访问权限

    java中的方法天生具有继承多态特性,这点与C++有很大不同(需要在父类方发上加virtual关键字),但用起来确实方便了许多. 最简单的继承多态 声明一个接口BaseIF,只包含一个方法声明 pub ...

  5. Nginx在Linux上的安装和配置

    链接:http://www.cnblogs.com/wbyp/p/7737224.html

  6. 《Head First Java》读书笔记

    primitive主数据类型有8种: boolean.char.byte.short.int.long.float.double 没有对象变量,只有引用到对象的变量,对象引用变量保存存取对象的方法 实 ...

  7. Bob Waters - Twenty Years

    We were just children and grown up closeHow we made it this far only god knowsWe bend the rulesSmash ...

  8. mysql事务隔离级别设置

    设置innodb的事务级别方法是:set 作用域 transaction isolation level 事务隔离级别: 若没有输入作用域直接修改transaction isolation,显示修改成 ...

  9. oracle 恢复误删数据

    快照  select * from sys_info as of timestamp to_Date('2014-04-08 15:28:00', 'yyyy-mm-dd hh24:mi:ss')   ...

  10. Mininet 系列实验(六)

    写在前面 这次实验遇到了非常多问题,非常非常多,花了很多时间去解决,还是有一些小问题没有解决,但是基本上能完成实验.建议先看完全文再开始做实验. 实验内容 先看一下本次实验的拓扑图: 在该环境下,假设 ...