要是以前别人问我。随口道来,封装继承多态,万物皆对象。。。一大推。说的自己都以为自己掌握了面向对象。呵呵一笑。确实掌握了 只是不会用。。。。。
以前 学。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>
面向对象 博大精深 需慢慢体会
原文:https://www.cnblogs.com/ruogu/p/10830381.html