假设有一个名为
但我仍然可以调用像
在这里,它说
我正在使用opentok服务器端SDK。使用以下代码:
jsObj
的javascript库对象。调用Object.keys
或Object.getOwnPropertyNames
,我会得到一个属性列表,例如:[a,b,c,d]
但我仍然可以调用像
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 (...){...}
for(prop in obj) { console.log(prop); }
(其中 obj 是您的对象),那么它会输出吗? - Arg0n