2020-10-10

构造函数定义函数 专栏收录该内容
1 篇文章 0 订阅

构造函数定义函数

function getSum(参数a,参数b){
使用结果;
}

var fn=new Function(参数a,参数b,使用结果);
例: function getSum(a, b) {
console.log(a + b);
}

var getSum = new Function(“a”, “b”, “console.log(a+b)”);
注:全部是字母格式,没有变量,没有其他类型。
特征:前面所有的内容都是参数,最后一个是函数中的语句块(函数中的运行代码)。

例:var getSum = new Function(“a”, “b”, “console.log(a+b)”);
getSum(5, 8);//13

报错暂时忽略:(在服务器上获取图标没有找到)

缺点:1.不容易写,语句块写在分号里,没有提示。
2.每句都需分号隔开,看到情况不清晰。
3.运行效率慢(字符串先转成语句函数,然后在运行,比普通函数运行速度慢),定义后才可以使用(不可以在上面调用)。
使用原因:都是字符串。
优点:前端和服务端会进行大量通信,可以从服务端拿到任何数据,除了数据还可以拿到字符串,前端开发过程中不单纯是处理数据(运行服务端功能),服务端发过来大量字符串,字符串全部是JS语句,然后把字符串通过new Function的形式来创建出函数,可以获取到服务端发过来的函数的方式。

例:var obj = {
a: 1,
b: 2,
c: function () {//c就是个函数方法
console.log(“aaa”);
}
}
obj.c();//就相当于执行了c函数(c函数里面的内容)
对象中有属性和方法:
属性就是key对应value是一个值
方法就是key对应value是一个函数

属性在调用时直接执行obj.a或者obj[“a”];就可以获取,通过obj.a=10或者obj[“a”]=10;就可以设值。
方法是不能设值的。方法调用 例:obj.c();或者obj"c";不能使用=,例:obj.c=();。

使用JSON方式无法转换对象中的方法
例:var obj = {
a: 1,
b: 2,
c: function () {//c就是个函数方法
console.log(“aaa”);
}
}
var str = JSON.stringify(obj);
console.log(str);
这样就无法保存对象中的方法,只能把对象中的属性保存。

保存对象中的方法:
obj.c = obj.c.toString();
把c这个方法转换成字符串覆盖原有的c方法。(原本的值是个函数,没有写括号,意味着将c的key对应的value重新赋值,赋值为obj.c.toString()
例: var obj = {
a: 1,
b: 2,
c: function () {//c就是个函数方法
console.log(“aaa”);
}
}
// 将函数转换为字符串重新赋值给c属性
obj.c = obj.c.toString();
// 转为JSON字符
var str = JSON.stringify(obj);
console.log(str);
把打印的字符串恢复成函数:添加
// 恢复回对象
var o = JSON.parse(str);
console.log(o);
// ???将c属性值转换为函数
c仍然是字符串,需要用new Function将里面的东西转换成函数,重新赋值给他。

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值