【发布时间】:2016-09-16 03:12:46
【问题描述】:
假设有一些库 javascript 对象jsObj。在调用 Object.keys 或 Object.getOwnPropertyNames 时,我会得到一个属性列表,例如
[a,b,c,d]
但我仍然可以调用像 jsObj.e() 这样的函数。为什么e 方法不是Object.keys 或Object.getOwnPropertyNames 的一部分?他们是怎么做到的?
Here,它表示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 (...){...}
【问题讨论】:
-
分享可执行演示.. 无法理解问题....
-
它可能是从它的原型之一继承而来的?如果你这样做:
for(prop in obj) { console.log(prop); }(其中 obj 是你的对象),那么它会被输出吗? -
添加了一些不可执行的代码,因为您需要自己的 api 密钥。希望这能清楚地解释这个问题
标签: javascript node.js object