js为Object对象动态添加属性和值 eval c.k c[k]
const appendInfo = () => {
const API_SECRET_KEY = 'https://github.com/dyq086/wepy-mall/tree/master/src'
const TIMESTAMP = 'util.getCurrentTime()'
const SIGN = 'md5.hex_md5((TIMESTAMP + API_SECRET_KEY).toLowerCase())'
return {
'API_SECRET_KEY': API_SECRET_KEY,
'TIMESTAMP': TIMESTAMP,
'SIGN': SIGN
}
}
let data = {}
const isSign = 2 || false
if (isSign) {
const a = appendInfo()
for (let k in a) {
console.log(k)
console.log(a.k)
eval('data.' + k + '= a.' + k)
}
}
console.log(data)
let a =3
let b = {}
while(a){
eval('b.tag_'+(a-1)+'='+a*a)
a--
}
{tag_2: 9, tag_1: 4, tag_0: 1}
let a =3
let b = {}
while(a){
eval('b.tag_'+(a-1))
a--
}
{}

c.k 添加的属性名为"k"
c[k] k的值
删除
利用动态特性

1 function Person(){};
2 var person = new Person();
3 person.name = 'yy';
4 person.gender = 'girl';
5 console.log(person.name+','+person.gender);//yy,girl
6 delete person.name;//删除属性
7 console.log(person.name);//undefined
8 // 变式
9 function Person(){};
10 var person = new Person();
11 person['name'] = 'yy';
12 person['gender'] = 'girl';
13 console.log(person.name+','+person.gender);//yy,girl
14 delete person.name;//删除属性
15 console.log(person.name);//undefined

构造函数中this

var Person = function (){
this.name = 'yy';
this.gender = 'girl'
};
var person = new Person();
console.log(person.name+','+person.gender);//yy,girl

原型中添加属性

var Person = function (){
};
Person.prototype.name = 'yy';
Person.prototype.gender = 'girl';
var person = new Person();
console.log(person.name+','+person.gender);//yy,girl
console.log(person['name']+','+person['gender']);//yy,girl

字面量添加属性

var person = {
};
person.name = 'yy';
person.gender = 'girl';
console.log(person.name+','+person.gender);//yy,girl
console.log(person['name']+','+person['gender']);//yy,girl
// 另一种写法
var person = {
name: 'yy',
gender: 'girl'
};
console.log(person.name+','+person.gender);//yy,girl
console.log(person['name']+','+person['gender']);//yy,girl

封装extend方法

var p1 = {};
var p2 = {name:'yy',gender:'girl'};
p1.extend = function(obj){
for(var k in obj){
this[k] = obj[k];
}
}
p1.extend(p2);
console.log(p1.name+','+p1.gender);//yy,girl
console.log(p1['name']+','+p1['gender']);//yy,girl
let formData = {}
formData['key'] = ossKey
formData['OSSAccessKeyId'] = AccessKeyId
formData['policy'] = PolicyBase64
formData['Signature'] = Signature
formData['x-oss-security-token'] = STS.SecurityToken
return {
key: ossKey,
OSSAccessKeyId: AccessKeyId,
policy: PolicyBase64,
Signature: Signature
}
js为Object对象动态添加属性和值 eval c.k c[k]的更多相关文章
- js对象动态添加属性,方法
1. 动态添加属性,方法 var object = new Object(); object.name = "name"; object.age = 19; >>> ...
- JS-给对象动态添加属性
var obj = {};//用来存放获取到所填写的信息 btn.onclick = function(){ var city = input_city.value; var num = input_ ...
- js 向数组对象中添加属性和属性值
let resultList = [{"name":"a1"},{"name":"b1"}] resultList.fo ...
- 从Object对象中读取属性的值
C#是强类型语言,强到多变态?一个对象没有定义某个属性,你想点出来,IDE直接给你报语法错误.远不如js那么自由,想怎么点怎么点. 如果你从别人接口中拿到的就是Object类型,你想获取某个属性的值怎 ...
- C# 从Object对象中读取属性的值
https://www.cnblogs.com/xbblogs/p/7739483.html
- Python笔记_第三篇_面向对象_8.对象属性和类属性及其动态添加属性和方法
1. 对象属性和类属性. 我们之前接触到,在类中,我们一般都是通过构造函数的方式去写一些类的相关属性.在第一次介绍类的时候我们把一些属性写到构造函数外面并没有用到构造函数,其实当时在写的时候,就是在给 ...
- 我的Python学习笔记(四):动态添加属性和方法
一.动态语言与静态语言 1.1 动态语言 在运行时代码可以根据某些条件改变自身结构 可以在运行时引进新的函数.对象.甚至代码,可以删除已有的函数等其他结构上的变化 常见的动态语言:Object-C.C ...
- day_5.26python动态添加属性和方法
python动态添加属性和方法 既然给类添加⽅法,是使⽤ 类名.⽅法名 = xxxx ,那么给对象添加⼀个⽅法 也是类似的 对象.⽅法名 = xxx '''2018-5-26 13:40:09pyth ...
- python 动态添加属性及方法及“__slots__的作用”
1.动态添加属性 class Person(object): def __init__(self, newName, newAge): self.name = newName self.age = n ...
随机推荐
- HDU 6251 Inkopolis(2017 CCPC-Final,I题,环套树 + 结论)
题目链接 HDU 6251 题意 给出一个$N$个点$N$条边的无向图.然后给出$M$个操作,每个操作为$(x, y, z)$,表示把连接 $x$和$y$的边的颜色改成$z$. 求这张无向图中所有边的 ...
- BZOJ1054(搜索)
大力搜,状态用一个16位的数字表示. #include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i( ...
- 一次程序bug的排查
这周准备下一个QA测试的版本,把版本发到测试环境就开始发现各种问题,修修补补搞了一周,总算告一段落了. 分析一下几个bug的问题,都集中在程序模块的整合中.一个模块的一个小的修改,造成另一个模块的 ...
- DataSnap——利用TParams进行多表事务更新
DataSnap——利用TParams进行多表事务更新 服务端: function TSVRDM.multUpdatesByPar(UpdateParam: TParams; out ErrMsg: ...
- 【Objective-C Runtime动态加载】---动态创建类Class
a.使用objc_allocateClassPair创建一个类Class const char * className = "Calculator"; Class kc ...
- JSONModel解析Dictionary To Model /JSON To Model
你在把字典转成object的时候还在按下面这样: self.id = [jsonDict objectForKey:@"id"]; self.name = [jsonDict ob ...
- win7 32位用pyinstaller打包Python和相关html文件 成exe
http://tieba.baidu.com/p/3060401749?traceid= 安装 pyinstaller 然后 第一步你的脚本里面要做相应处理,添加一个函数:def resource_p ...
- CentOS6.5环境配置笔记
CentOS6.5环境配置笔记 一.概述 服务器系统重装,配置应用运行环境 CentOS6.5 x64 二.修改密码 重新设置登录密码 $passwd 或 $passwd root 三.配置端口号及防 ...
- linux过滤ip段
https://www.2cto.com/net/201307/227257.html
- hibernate 过滤
1.可以使用@Where的过滤,不过这种过滤式全局的,支持延迟加载. 2.可以使用@Filters,这种过滤不支持延迟加载. @Entity@Table(name = "qc315_tous ...