Tôi có một sự hiểu biết khá tốt về Javascript, ngoại trừ việc tôi không thể tìm ra cách tốt nhất để đặt biến "this". Hãy xem xét:Đặt biến "này" dễ dàng?
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
var old_fn = someObj.fn; //store old value
someObj.fn = myFunction; //bind to someObj so "this" keyword works
someObj.fn();
someObj.fn = old_fn; //restore old value
Có cách nào để thực hiện điều này mà không có 4 dòng cuối cùng không? Nó khá khó chịu ... Tôi đã cố gắng ràng buộc một chức năng vô danh, mà tôi nghĩ là đẹp và thông minh, nhưng vô ích:
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
someObj.(function(){ fn(); })(); //fail.
Rõ ràng, chuyển biến vào myFunction là một lựa chọn ... nhưng đó là không phải là điểm của câu hỏi này.
Cảm ơn.
Ngoài ra, nếu bạn đang sử dụng jQuery, bạn có thể sử dụng '$ .proxy (hàm, phần tử)' để bất cứ khi nào mà functio n được gọi, nó sẽ ở trong ngữ cảnh của phần tử. http://api.jquery.com/jquery.proxy/ –