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 ...
随机推荐
- BZOJ 4197 NOI 2015 寿司晚宴
题面 Description 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了 n−1 ...
- Docker 创建image
images 是containers的基础.每次使用docker run 命令都要指定image. 列出本地images zane@zane-V:~$ docker images REPO ...
- Mac OS X上使用Wireshark抓包
Wireshark针对UNIX Like系统的GUI发行版界面采用的是X Window(1987年更改X版本到X11).Mac OS X在Mountain Lion之后放弃X11,取而代之的是开源的X ...
- [Cocoa]深入浅出Cocoa多线程编程之 block 与 dispatch quene
深入浅出 Cocoa 多线程编程之 block 与 dispatch quene 罗朝辉(http://www.cppblog.com/kesalin CC 许可,转载请注明出处 block 是 Ap ...
- recovery怎么刷机,recovery是什么意思
转自:http://www.3lian.com/edu/2012/04-11/25212.html Recovery是什么意思? recovery翻译过来就是“恢复”的意思,是开机后通过特殊按键组合( ...
- 获取安装后Apache、MySQL、Nginx、PHP编译时参数
# cat /usr/local/apache2/build/config.nice //获取Apache编译时的参数 #!/bin/sh # #Created by configure & ...
- Google SEO 学习网站记录
在搜索结果中创建良好的标题和摘要: https://support.google.com/webmasters/answer/35624?hl=zh-Hans&ref_topic=600194 ...
- 转: 三大WEB服务器对比分析(apache ,lighttpd,nginx) (2008年的旧文,仅供参考之用)
from: http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html 三大WEB服务器对比分析(apache ,lighttp ...
- Linux后台进程管理(转)
fg.bg.jobs.&.ctrl + z命令一. &加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &,二.ctrl + z可以将一个正在前台执行的命令放到后台 ...
- vue2.X slot 分发内容
1.概述: 简单来说,假如父组件需要在子组件内放一些DOM,那么这些DOM是显示.不显示.在哪个地方显示.如何显示,就是slot分发负责的活. 2.默认情况下 父组件在子组件内套的内容,是不显示的. ...