1
在Node.js的究竟是爲了當遍歷所有對象的屬性,它遍歷之前它自己的屬性或其他方式輪繼承的屬性?Node.js的物業遍歷順序
也是這個可能在未來又名做我需要寫一些功能檢測此類似,下面來改變?
var util = require("util");
function testOwnFirst() {
function A() {
this.a = 1;
}
function B() {
this.b = 2;
}
util.inherits(B, A);
var objB = new B();
for (var prop in objB) {
if(prop === "a") {
// Traversal starts with inherited properties first
return false;
}
// Traversal starts with own properties first
return true;
}
}
exports.ownFirst = testOwnFirst();
ECMAScript標準很明確指出的對象是一個_unordered_集合屬性(參見4.3.3節在這裏:http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf),所以你應該不以任何方式依賴於屬性的排序。節點(和底層的V8引擎)將不提供任何保證。 – ksimons
你也許可以做到這一點遍歷所有屬性和調用hasOwnProperty(),每一個看到這是繼承的,哪些不是 – ksimons
@ksimons我明白了,謝謝,我一直在尋找在jQuery的執行isPlainObject作爲我最好的我喜歡有同樣的事情。但如果規範說**無序**我只是檢查循環中的hasOwnProperty。 – DeMeNteD