ES6-对象的扩展-方法name属性
来源:互联网 发布:mac好的app推荐 编辑:程序博客网 时间:2024/06/05 23:42
函数的 name 属性,返回函数名。对象方法也是函数,因此也有 name 属性。
const person = { sayName() { console.log('hello!'); },};person.sayName.name // "sayName"上面代码中,方法的 name 属性返回函数名(即方法名)。
如果对象的方法使用了取值函数(getter)和存值函数(setter),则 name 属性不是在该方法上面,而是该方法的属性的描述对象的 get 和 set 属性上面,返回值是方法明前加上 get 和 set。
const obj = { get foo() {}, set foo(x) {}};obj.foo.name// TypeError: Cannot read property 'name' of undefinedconst descriptor = Object.getOwnPropertyDescriptor(obj, 'foo');descriptor.get.name // "get foo"descriptor.set.name // "set foo"有两种特殊情况:bind 方法创造的函数,name 属性返回 bound 加上原函数的名字;Function 构造函数创造的函数,name 属性返回 anonymous。
(new Function()).name // "anonymous"var doSomething = function() { // ...};doSomething.bind().name // "bound doSomething"如果对象的方法是一个 Symbol 值,那么 name 属性返回的是这个 Symbol 值的描述。
const key1 = Symbol('description');const key2 = Symbol();let obj = { [key1]() {}, [key2]() {},};obj[key1].name // "[description]"obj[key2].name // ""上面代码中,key1 对应的 Symbol 值有描述,key2 没有。
阅读全文
0 0
- ES6-对象的扩展-方法name属性
- ES6-函数的扩展-name属性
- ES6-对象的扩展-属性名表达式
- es6 函数的name属性
- ES6对象的扩展
- 【es6】对象的扩展
- ES6--对象的扩展
- ES6对象的扩展
- ES6-对象的扩展-属性的简介表示法
- ES6-对象的扩展-_proto_ 属性,Object.setPrototypeOf(),Object.getProtitypeOf()
- ES6-Array对象的扩展
- 【ES6】对象的扩展2
- es6入门-对象的扩展
- ES6--对象、函数的扩展
- 07、ES6 对象的扩展
- ES6(八) 对象的扩展
- ES6--内置对象的扩展
- ES6的全局对象属性
- SQL 语句判断英文大小写
- MySQL中删除unique key (删除某个字段的唯一性约束)
- 疯狂Html+CSS+JS 中JS总结
- 文章标题
- 堆排序
- ES6-对象的扩展-方法name属性
- Linux下查看文件和文件夹大小
- 关于json的一点理解
- guava实用小方法
- 11月16日云栖精选夜读:阿里云 oss JavaScript客户端签名文件上传 vue2.0
- 1基于opencv的图像读_写_显示_初级混合
- docker和虚拟机的对比图
- static用法
- Android异步线程OkHttp Post请求Json数据并解析