Về cơ bản tôi cần để có thể làm điều này:Xác định getter trên đối tượng vì vậy tất cả không xác định tra cứu bất động sản trở lại ""
var obj = {"foo":"bar"},
arr = [];
with(obj){
arr.push(foo);
arr.push(notDefinedOnObj); // fails with 'ReferenceError: notDefinedOnObj is not defined'
}
console.log(arr); // ["bar", ""] <- this is what it should be.
Tôi đang tìm kiếm một "" tương đương toàn cầu của {}.__defineGetter__
hoặc {get} để trở lại một chuỗi rỗng cho tất cả các getters thuộc tính không xác định (lưu ý rằng điều này khác với một thuộc tính là undefined
).
Bạn có thể sử dụng một [Proxy] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Proxy)? – thisgeek
Nó không giống như 'Proxy' có sẵn trong bất kỳ phiên bản nút nào. :-( –
Vâng, có vẻ như V8 vẫn đang hoạt động trên nó (http://code.google.com/p/v8/issues/detail?id=1543). – thisgeek