相关知识点:
构造函数、原型对象、实例对象
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> * { margin: 0; padding: 0; } .wrap { margin: 50px; width: 200px; height: 200px; border: 1px solid red; } .active { border-color: yellow; } </style> </head> <body> <div class="wrap" data-html="hello"></div> <script> function $(s) { return document.querySelector(s); } function attr(obj, data) { return obj.getAttribute(data); } function ChangeEle(obj) { this.ele = obj; this.ele.dataHtml = attr(this.ele, 'data-html'); } ChangeEle.prototype.myHtml = function () { var ele=this.ele; ele.innerHTML = ele.dataHtml; } ChangeEle.prototype.replaceStr = function (str) { var ele=this.ele; ele.innerHTML = ele.innerHTML === ele.dataHtml ? str : ele.dataHtml; } ChangeEle.prototype.addEvent = function (type, fn) { this.ele.addEventListener(type, fn); } var myWrap = new ChangeEle($('.wrap')); myWrap.myHtml(); myWrap.addEvent('click', function () { myWrap.replaceStr('world'); }); </script> </body> </html>