外挂式插件编程思路【基础篇】(3)

野生程序猿-杂烧4年前案例分享1133

* 本网页 讲解外挂插法,内插(外部的东西往内部插)。

* window.plugin01,window.plugin02模拟2个外部用户,内部的逻辑方法会随着外部更改而更改

* 特征,主要代码是写内部逻辑

* 外挂插进来的东西,直接在内部参与了逻辑交互。

【demo.html】

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>外挂式插件编程思路</title>
		<script type="module">
			/**
			* 本网页 讲解外挂插法,内插(外部的东西往内部插)。
			* window.plugin01,window.plugin02模拟2个外部用户,内部的逻辑方法会随着外部更改而更改
			* 特征,主要代码是写内部逻辑
			* 外挂插进来的东西,直接在内部参与了逻辑交互。
			*/
			//模拟2个用户
			window.plugin01={
				content:'我是野生程序猿',
				start_back:function(){
					console.log('plugin01讲完了');
				}
			}
			
			window.plugin02={
				content:'我是全栈程序猿',
				start_back:function(){
					console.log('plugin02讲完了');
				}
			}
			
			import speak from './speak.js';
			//将2个用户信息,强行挂载到功能类上(功能类里面可以用配置,回调方法等)。
			window.speak1=new speak(window.plugin01);
			window.speak2=new speak(window.plugin02);
		</script>
	</head>
	<body>
		<button onclick="test1()">测试1</button>
		<button onclick="test2()">测试2</button>
		<script>

			function test1()
			{
				speak1.start();
			}
			
			function test2()
			{
				speak2.start();
			}
			
			//模拟3秒后2个用户,说话内容变化
			setTimeout(()=>{
				window.plugin01.content=window.plugin01.content+' 内容已变化。';
				window.plugin02.content=window.plugin02.content+' 内容已变化。';
			},3000);
		</script>
		
	</body>
</html>

【speak.js】

class speak{
	plugin={};
	constructor(plugin)
	{
		this.plugin=plugin;
		console.log('外部的东西 已经通过外挂方式 插进内部来了');
	}
	start(){
		
		console.log(this.plugin.content);
		this.plugin.start_back();
		
	}
}
export default speak;


这个是外部的东西往内部插。


image.png

标签: 外挂式编程

相关文章

外挂式插件编程思路【总结篇】(14)

先前讲解了外挂式的思维,以及用外挂式的思维开发框架,这里做个总结。1、内插、外插的思维。很多时候我们代码this是乱的,库里面可以用$this代表插进来的this。(参照先前的ZaShao.js)2、...

外挂式插件编程思路【基础篇】(2)

外挂式插件编程思路【基础篇】(2)

* 本网页 讲解外挂插法,外插(内部的东西插到外部使用)。* 内部的代码几乎不变的情况下, 通过插入外部的个别方法,达到控制内部的目的* 特征,主要代码是写外部逻辑。内部尽可能的不动、少动【demo....

外挂式插件编程思路【进阶篇】(6)

外挂式插件编程思路【进阶篇】(6)

深入模拟低代码编程【index.html】<!DOCTYPE html> <html ng-app="myApp"  n...

外挂式插件编程思路【敏捷框架篇】(13)

外挂式插件编程思路【敏捷框架篇】(13)

zhaoshao.alert支持zs-select,结合才是一个相对复杂的应用场景。【index.html】<!DOCTYPE html> <html ng-a...

外挂式插件编程思路【敏捷框架篇】(9)

外挂式插件编程思路【敏捷框架篇】(9)

有了外挂式思维基础,开始涉及框架。个人理解,所谓框架就是自己研究一些习惯、一些风格,出于某个目的(如快速开发),而设计并开发出的一套生产工具。我这里对框架的需求主要是两点1、快。为了减少开发的工作时间...

外挂式插件编程思路【进阶篇】(4)

外挂式插件编程思路【进阶篇】(4)

外挂式编程结合angular.js【demo.html】<!DOCTYPE html> <html ng-app="myApp" ...