什么是面向对象

要是以前别人问我。随口道来,封装继承多态,万物皆对象。。。一大推。说的自己都以为自己掌握了面向对象。呵呵一笑。确实掌握了 只是不会用。。。。。

什么是面向对象编程

以前 学。Net 虽然MVC 本身就是面向对象。也就没管什么思想,就记住步骤,跟着写就好。

现在想想,那时候还是太年轻了,当我看了设计模式里面对MCV的一个解释。发现并不是这么回事,面向对象 学问可大了,学好面向对象,锻炼思想,便开始虚心起来,觉得不简单。

废话说了那么多。

什么是面向对象编程。现在 我觉得 就是以对象的方式去写代码,不在考虑怎么一步步的实现效果。

按照之前我们可能会 先写10个DIV 然后随机位置 随机颜色 一步步

 按照面向对象 就不在这样想了 先看有几个对象 在属性 方法。。

  这个有一个盒子对象。 盒子有大小 位置 背景颜色这些属性

  有随机颜色 随机位置 和出现的方法

那么就可以开始动手了

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
* {
margin: 0;
padding: 0;
} #container {
width: 800px;
height: 800px;
background-color: #cccccc;
position: relative; }
</style>
</head>
<body>
<div id="container"></div>
</body>
<script>
// 方块对象box
//盒子有大小,位置 背景颜色等属性。
//方法有随机改变位置 随机背景颜色
function Box(element) {
this.width = 20
this.height = 20
this.backgroundColor = 'red'
this.x = 50
this.y = 50
this.elemen=element
this.div=document.createElement('div')
element.appendChild(this.div) }
//初始化
Box.prototype.init=function(){
this.randombc()
this.randomxy()
this.div.style.width=this.width+'px';
this.div.style.height=this.height+'px'
this.div.style.backgroundColor=this.backgroundColor
this.div.style.position='absolute'
this.div.style.left=this.x+'px'
this.div.style.top=this.y+'px'
console.log(this.div)
}
Box.prototype.randomxy=function(){
this.x=randomNum(0,(this.elemen.offsetWidth-this.width)/this.width)*this.width
this.y=randomNum(0,(this.elemen.offsetHeight-this.height)/this.height)*this.height }
Box.prototype.randombc = function () {
let r = randomNum(0, 255)
let g = randomNum(0, 255)
let b = randomNum(0, 255)
this.backgroundColor = 'rgb(' + r + ',' + g + ',' + b + ')'
} function randomNum(minNum, maxNum) {
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum) }
let ele=document.getElementById('container')
let arr=[]
for (let i=0;i<10;i++){
arr[i]=new Box(ele)
arr[i].init()
}
setInterval(function () {
for (let i=0;i<arr.length;i++){
arr[i].init()
}
},500)
</script> </html>

  面向对象 博大精深 需慢慢体会

JavaScript—面向对象小例子的更多相关文章

  1. JavaScript面向对象小抄集

    前言 本文旨在记录JavaScript中面向对象的基础知识 搞明白JavaScript中的面向对象 一切都是对象 JavaScript中,除了基本类型外,其它类型都是对象类型 所谓对象就是若干属性的集 ...

  2. javascript平时小例子⑨(小型抽奖功能)

    <!doctype html><html lang="en"> <head> <meta charset="utf-8" ...

  3. javascript平时小例子⑧(导航置顶效果)

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

  4. javascript平时小例子⑦(鼠标跟随的div)

    <!doctype html><html> <head> <meta charset="utf-8"> <title>无 ...

  5. javascript平时小例子⑥(简易计算器的制作)

    <!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...

  6. javascript平时小例子⑤(投票效果的练习)

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. javascript平时小例子④(setInterval使用2)

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>& ...

  8. javascript平时小例子③(setInterval使用1)

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  9. javascript平时小例子②(正则表达式验证邮箱)

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>邮 ...

随机推荐

  1. redis学习(六)

    一.Redis 数据备份与恢复 1.Redis SAVE 命令用于创建当前数据库的备份.该命令将在 redis 安装目录中创建dump.rdb文件. 2.语法:redis 127.0.0.1:6379 ...

  2. POJ 1565:Skew Binary

    Skew Binary Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10676   Accepted: 6807 Desc ...

  3. maven项目打包部署到虚拟机测试和生产环境上及查看日志操作

    调试通过后提交代码到gitlab,打包部署到相应环境(测试或生产环境)步骤一样1.打包在要打包的项目上右键run as maven clean 清除原来的包,然后run as maven instal ...

  4. Java8系列 (四) 静态方法和默认方法(转载)

    静态方法和默认方法 我们可以在 Comparator 接口的源码中, 看到大量类似下面这样的方法声明 //default关键字修饰的默认方法 default Comparator<T> t ...

  5. (转)linux shell 的here document 用法 (cat << EOF)

    什么是Here Documen: Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下 cmd << delimiter Here Docu ...

  6. 自动填充IP地址

    在windows下的DOS窗口中 要利用Netsh命令,进入到DOS下的网络配置状态,就能实现各种网络配置. 进入IP设置模式 在DOS环境中,设置网络参数之前,必须先进入IP设置模式才可以.先打开系 ...

  7. Wdcp升级Php5.3成功

    在lanmp/wdcp/wdOS的当前版本中,默认的php都是用到5.2.17的版本如需要升级到php5.3的,可使用如下脚本升级(注:此升级无安全漏洞等原因,只为某些追求高版本或应用需求需要高版本, ...

  8. python_@classmethod

    class A(object): bar = 1 def func1(self): print ('foo') @classmethod def func2(cls): print ('func2') ...

  9. 2019-9-16 java上课知识整理总结(动手动脑,课后实验)

    java上课知识整理总结(动手动脑,课后实验) 一,课堂测试 1,题目:课堂测试:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求:(1)题目避免重复: (2)可定制( ...

  10. linux 批量kill php进程

    一.执行以下命令 ps -ef|grep php|grep -v grep|cut -c 9-15|xargs kill -9     管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右 ...