文档章节

js实现函数继承(杜绝源数据污染)

 甜酒0917
发布于 2016/12/08 17:02
字数 130
阅读 9
收藏 0

e5中一般的对象继承,无论是浅还是深对于函数对象都是引用,本例子根据toString()和new Function()及eval动态执行字符串 实现无污染加强版深继承

var func=function(a,b,c){
		    alert(a+b+ c);
	}
var str=func.toString();
var str1=str.slice(str.indexOf("(")+1,str.indexOf(")"));
var str2=str.slice(str.indexOf("{")+1,str.lastIndexOf("}"));

var ary1=str1.split(",");
var ary=[];
for(var i=0;i<ary1.length;i++){
  ary.push("'"+ary1[i]+"'");
}
  ary.push("'"+str2.replace(/\n\r/g,"")+"'");

var  strResult=ary.join(",");
console.log(strResult)
var result=eval("new Function("+strResult+")");
	
result(1,2,3)

 

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 13
码字总数 3450
作品 0
武汉
JavaScript核心概念归纳整理

原文出处: 熊俊漉 JavaScript语言本身是一个庞大而复杂的知识体系,复杂程度不低于任何一门后端语言,本文针对JavaScript语言的核心概念进行简单的梳理,对应的每个知识点仅仅点到为止,不作...

音乐宇Code
05/27
0
0
JavaScript 中的继承:ES3、ES5 和 ES6

选择一种继承方式 JavaScript 是一门动态语言,动态意味着高灵活性,而这尤其可以体现在继承上面。JavaScript 中的继承有很多种实现方式,可以分成下面四类: Mixin 模式,即属性混入,从一个...

天方夜
07/04
0
0
前端高频面试题 JavaScript篇

以下问题都来自于互联网前端面经分享,回答为笔者通过查阅资料加上自身理解总结,不保证解答的准确性,有兴趣讨论的同学可以留言或者私信讨论。 1.JS的异步机制? 2.闭包如何实现? 3.原型链、...

大雄的学习人生
06/25
0
0
《javascript语言精粹》学习笔记1

作为一个前端的学习者,之前由于时间赶且懒的特性,没有好好的学习一下js的特性,只看了w3cschool的基础教程,知道语法后就用起了jQuery框架,js的很多基础完全没有接触理解。这段时间了解到...

高霸天
2013/03/17
0
0
温故js系列(14)-闭包&垃圾回收&内存泄露&闭包应用&作用域链&再析闭包

前端学习:教程&开发模块化/规范化/工程化/优化&工具/调试&值得关注的博客/Git&面试-前端资源汇总 欢迎提issues斧正:闭包 JavaScript-闭包 闭包(closure)是一个让人又爱又恨的something,它...

xzavier
08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker学习笔记

Docker Resources All In One Docker 学习资源整理

OSC_fly
5分钟前
3
0
Android 安全逆向:篡改你的位置信息

篡改你的位置信息

蔡小鹏
6分钟前
1
0
SpringMVC 全局异常处理,返回json

1.在spring-mvc.xml中增加配置: 比如我的freemarker视图定义的是:/WEB-INF/template 我的页面则放在template下的common目录下,所以下方定义的是common/500,文件扩展名根据视图定义可以忽...

Gmupload
7分钟前
1
0
一篇文章搞定前端面试

本文旨在用最通俗的语言讲述最枯燥的基本知识 面试过前端的老铁都知道,对于前端,面试官喜欢一开始先问些HTML5新增元素啊特性啊,或者是js闭包啊原型啊,或者是css垂直水平居中怎么实现啊之...

Jack088
13分钟前
3
0
ajax 轮询请求后台服务器

<script type="text/javascript"> // var i=0; //声明轮询次数变量 $(document).ready(function(){ c = window.setInterval("getResult()",10000); //间隔多少秒去触发ajax }); function get......

15834278076
16分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部