Ama*_*pta 5 javascript object node.js
假设有一些库javascript对象jsObj.在调用Object.keys或Object.getOwnPropertyNames,我得到一个属性列表,如
[a,b,c,d]
Run Code Online (Sandbox Code Playgroud)
但我仍然可以调用一个函数jsObj.e().为什么该方法e不属于Object.keys或Object.getOwnPropertyNames?他们是怎么做到的?
在这里,它表示Object.getOwnPropertyNames将返回非可枚举属性.那么e上面的属性是什么特征呢?
我正在使用opentok服务器端SDK.使用以下代码,
var OpenTok = require('opentok');
var opentok = new OpenTok(config.tokbox.apiKey, config.tokbox.secret);
console.log("opentok1", Object.getOwnPropertyNames(opentok));
prints -> // [ '_client',
'apiKey',
'apiSecret',
'apiUrl',
'startArchive',
'stopArchive',
'getArchive',
'deleteArchive',
'listArchives' ]
console.log("opentok2", opentok.createSession);
prints -> function (...){...}
Run Code Online (Sandbox Code Playgroud)
Object.e必须在对象的原型上定义.像这样:
var test = function() {}
test.prototype = { e: function() { return 'e'; } }
var obj = new test();
Object.keys(obj) // returns []
obj.e() // returns 'e'
Run Code Online (Sandbox Code Playgroud)
获取原型键的一种方法是简单地获取原型并使用Object.keys()函数:
Object.keys(Object.getPrototypeOf(obj))
Run Code Online (Sandbox Code Playgroud)
但是,这不会为您提供原型原型的键.
| 归档时间: |
|
| 查看次数: |
1145 次 |
| 最近记录: |