文档章节

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 的继承,说是原型链,看起来又像类,究竟是原型还是类?各种 、、 内部变量更是傻傻搞不清楚。...

linesh
10/23
0
0
JavaScript核心概念归纳整理

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

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

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

天方夜
10/30
0
0
每个JavaScript工程师都应懂的33个概念

摘要: 基础很重要啊! 原文:33 concepts every JavaScript developer should know 译文:每个 JavaScript 工程师都应懂的33个概念 作者:stephentian Fundebug经授权转载,版权归原作者所有...

Fundebug
10/30
0
0
JavaScript 中的面向对象编程

介绍 JavaScript 是一个强大的面向对象编程语言,但是,并不像传统的编程语言,它采用一个以原型为基础的OOP模型,致使它的语法让大多数开发人员看不懂。另外,JavaScript 也把函数作为首要的...

oschina
2016/09/09
5.1K
7

没有更多内容

加载失败,请刷新页面

加载更多

网易免费企业邮箱配置客户端

网易免费企业邮箱客户端(pop、imap、smtp)权限默认开启,对应服务器地址为: 发件服务器: SMTP:smtp.ym.163.com 默认端口为:25 (如勾选ssl安全链接,端口号为994) 收件服务器: POP3...

柴高八斗之父
6分钟前
0
0
Hanlp在ubuntu中的使用方法介绍

HanLP的一个很大的好处是离线开源工具包,换而言之,它不仅提供免费的代码免费下载,而且将辛苦收集的词典也对外公开啦,此诚乃一大无私之举.我在安装的时候,主要参照这份博客: blog.csd...

左手的倒影
9分钟前
0
0
软件架构的案例(架构学习九)

阿里 liunx+php+apache+mysql(淘宝网成立)->oracle(淘宝旺旺、支付宝)->java1.0(EJB、Mysql)->java2.0(Spring、JBoss、)->java3.0->分布式时代...

zzx10
10分钟前
1
0
用9种办法解决 JS 闭包经典面试题之 for 循环取 i

闭包 正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是属性),function ...

Jack088
13分钟前
0
0
Yearning基于Inception的开源SQL审核平台

基础环境: python3 nodejs vuejs mysql python-ldap pymysql mysql 新建数据库 create database Yearning DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Navicat导入初始化数据 : ......

以谁为师
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部