js apply 结合 多态的应用
2017-06-18 00:00
441 查看
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <meta charset="utf-8" /> <script src="./jquery.js"></script> <script> // this指向外部数据. Function.prototype.bind = function (context) { var _self = this; return function () { // 修正this的指向问题. return _self.apply(context, arguments); } } /* 可以修正配置文件,其他的操作都是一致的, 只有配置项是不同的 */ var nodes = { root: '#root', table: '#tb', getRoot: function () { console.log(this.root); } }; var nodes2 = { root: '#root1', table: '#tb1', getRoot: function () { console.log(this.root); } } var Ppt = function () { var root = this.root; var tb = this.tb; return { getRoot: function () { return root; } } }.bind(nodes); var Tables = function () { var root = this.root; var tb = this.tb; return { getRoot: function () { return root; } } }.bind(nodes2); // 对象的多态处理, function getRoot(objects) { return objects.getRoot(); } // 不同的配置, 实现不同处理, 具体的处理逻辑由子类去修改处理, console.log(getRoot(Ppt())); console.log(getRoot(Tables())); /* 使用场景 : 多个页面上需要不同的节点操作, 但是某些操作名称是一致的, 那么可以将需要操作的节点写成配置文件的形式,对数据进行封装处理, 通过 bind方法将配置对象与操作对象进行耦合处理, 在this的指向被调整后, 每个封装的对象是独立, 但是它们也具有共性, 此时使用多态去操作, 绑定一些事件, 对象节点进行增删处理, 或是样式上的调整. 也可以对操作对象进行抽象,在父类中触发行为上的操作, 不用关心子类的实现. */ </script> </head> <body> <div id="a"></div> </body> </html>
相关文章推荐
- 学习JS中的replace方法以及与正则表达式的结合应用
- js 结合vb script 应用
- 基于HTML5的WebGL结合Box2DJS物理引擎应用
- js中apply和call方法的应用
- js中apply和call方法的应用
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- js中apply和call方法的应用
- 基于HTML5的WebGL结合Box2DJS物理引擎应用
- js的call和apply的应用说明
- js中apply和call方法的应用
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- 如何将多态与现实应用结合起来
- JS中eval工作原理和json格式(eval+json两者结合应用)2011-07-05 22:39--本文讲解一下javascript中eval与json的应用问题。
- 基于HTML5的WebGL结合Box2DJS物理应用
- js原型继承与多态 How to apply virtual function in javascript
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- JS中eval工作原理和json格式(eval+json两者结合应用)
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- js中apply和call方法的应用
- js中apply和call方法的应用