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 ...
随机推荐
- Unique Binary Search Tree - Leetcode
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- 代码统计利器--CLOC
MAC下安装命令:$ brew install cloc 其他的linux安装 $ aptitude install cloc 使用方法.到目录下运行: $ cloc . The default ou ...
- ios与js交互获取webview元素和赋值
使用webview的stringByEvaluatingJavaScriptFromString的方法交互,直接提供实例. 下载:http://download.csdn.net/detail/hey ...
- zfighting 的问题
1.对每个mesh 在脚本里加bias 由美术勾 {a. vertex shader b. depth bias slop depth bias rasterizateState} 2.inverse ...
- docker selinux-enabled作用
一.现象 在docker中有一个运行选项是selinux-enabled.这个选项的作用是啥? 简而言之,它提供了对docker容器中进程的selinux的控制支持.下面举例说明. 首先按照官方文档的 ...
- vue class绑定方式
1.对象语法 <div class="static" v-bind:class="{ active: isActive, 'text-danger': hasErr ...
- UNP学习笔记(第二十五章 信号驱动式I/O)
信号驱动式I/O是指进程预先告知内核,使得当某个描述符发生某事时,内核使用信号通知相关进程. 套接字的信号驱动式I/O 针对一个套接字使用信号驱动式I/O(SIGIO)要求进程执行以下3个步骤: 1. ...
- Archlinux 下的 VMWare Workstation 维护笔记
印象中 Archlinux 下的 VMWare Workstation 总是出问题, 因此写这个帖子, 记录出问题时间/原因/解决方案. PS: 每次更新内核后可能需要重新编译 vmware 的内核模 ...
- 【Python】matplotlib绘制折线图
一.绘制简单的折线图 import matplotlib.pyplot as plt squares=[1,4,9,16,25] plt.plot(squares) plt.show() 我们首先导入 ...
- PX4学习之-uORB简单体验
一.前言 最近项目使用到 CPU2 与 CPU0 之间的通信, 使用定时器传递消息到 CPU0 后, CPU0 需要将消息分发到不同的应用程序里面. PX4 里面使用的是 uORB 多线程/进程通信机 ...