2010-05-27 36 views
43

Ai đó có thể cho tôi biết từ đó ECMA phiên bản toán tử IN có sẵn và trình duyệt (phiên bản) nào hỗ trợ nó?Khả năng tương thích của nhà điều hành Javascript IN

Giải thích:

IN-nhà điều hành có thể được sử dụng như sau:

var myObject = { 
    Firstname: 'Foo', 
    Lastname: 'Bar' 
}; 

if('Lastname' in myObject){ 
    // Lastname is an attribute of myObject 
} 

Trả lời

52

Được xác định trong ECMAScript 3rd edition. Nó có sẵn trong IE 5.5+ và tất cả các phiên bản dùng trong Firefox, Chrome, Opera và Safari.

Bạn có thể sử dụng nó an toàn khi biết rằng nó sẽ hoạt động.

Bạn nên thận trọng khi sử dụng nó để kiểm tra hỗ trợ sự kiện. Tất cả các triển khai ngoại trừ các phiên bản cũ hơn của Firefox đều hỗ trợ "eventname" in element làm thử nghiệm cho các sự kiện DOM.

"onclick" in document.body; // -> false in old Fx, true in others 
document.body.setAttribute("onclick", ""); 
typeof(document.body.onclick == "function"); // -> true in Fx 
+2

Chỉ có trong IE 5.5+; IE 5.0 là 'trình duyệt sự cố' cho 'in', mặc dù rõ ràng lo lắng đã biến mất từ ​​lâu rồi. – bobince

+1

FWIW Tôi không thể nhìn thấy nó trong phiên bản thứ 2 @ http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm –

+1

@Nick: chắc chắn là trong 3.0, mặc dù IE đã không không hỗ trợ nó tại thời điểm xuất bản. ECMAScript 3.1 là tên phát triển cho những gì đã trở thành ấn bản thứ năm. – bobince

2

Theo MDC, nó implemented in JavaScript 1.4.

Theo Wikipedia:

  • Netscape Navigator 6.0
  • Firefox 1.0 trở lên
  • IE 5.5+
  • Opera 6.0+
  • Safari 3.0+
  • Chrome 1.0+

Vì vậy, tôi nghĩ bạn có thể OK :)

+0

vì tôi có thể thực hiện 'undefined = 'defined!';' Trước đó trong mã, rõ ràng * có lợi. – Eric

+0

@jAndy, ok, tôi đã chỉnh sửa điều đó. – Skilldrick

+1

Thực sự, bạn nên đặt câu trả lời đó như một câu trả lời khác, vì bây giờ ý kiến ​​của chúng tôi không có ý nghĩa gì cả. – Eric

Các vấn đề liên quan