51
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
var test = {
demo: function[]{
//get the caller context here
}
}
//when this gets called, the caller context should be window.
test.demo[];
Tôi đã thử arguments.callee
và ________ 6, và không có may mắn ...
Đã hỏi ngày 13 tháng 3 năm 2012 lúc 5:57Mar 13, 2012 at 5:57
4
Vì từ khóa this
đề cập đến ThisBinding
trong LexicalEnvironment
và javaScript [hoặc ecmascript] không cho phép truy cập lập trình vào LexicalEnvironment
[trên thực tế, không có quyền truy cập theo chương trình vào toàn bộ
var test = {
demo: function[] {
console.log[this];
}
}
test.demo[]; // logs the "test" object
var test2 = test.demo;
test2[]; // logs "DOMWindow"
test.demo.apply["Cheese"]; // logs "String"
1], do đó không thể có được bối cảnh của người gọi.impossible to get the context of caller.Ngoài ra, khi bạn thử
var test = {
demo: function[] {
console.log[this];
}
}
test.demo[]; // logs the "test" object
var test2 = test.demo;
test2[]; // logs "DOMWindow"
test.demo.apply["Cheese"]; // logs "String"
2 trong bối cảnh toàn cầu, không nên có người gọi nào cả, không phải là bối cảnh đính kèm với người gọi, đây chỉ là một mã toàn cầu, không phải là bối cảnh gọi.no caller at all, neither an attached context to the caller, this is
just a Global Code, not a calling context.Đã trả lời ngày 13 tháng 3 năm 2012 lúc 6:03Mar 13, 2012 at 6:03
Otakustayotakustayotakustay
10,9k3 Huy hiệu vàng37 Huy hiệu bạc43 Huy hiệu đồng3 gold badges37 silver badges43 bronze badges
2
Theo bối cảnh, tôi cho rằng bạn có nghĩa là this
? Điều đó phụ thuộc vào cách thức chức năng được gọi, không phải từ nơi nó được gọi.
Ví dụ: sử dụng bảng điều khiển WebKit]:
var test = {
demo: function[] {
console.log[this];
}
}
test.demo[]; // logs the "test" object
var test2 = test.demo;
test2[]; // logs "DOMWindow"
test.demo.apply["Cheese"]; // logs "String"
Ngẫu nhiên,
var test = {
demo: function[] {
console.log[this];
}
}
test.demo[]; // logs the "test" object
var test2 = test.demo;
test2[]; // logs "DOMWindow"
test.demo.apply["Cheese"]; // logs "String"
4 không được chấp nhận.Đã trả lời ngày 13 tháng 3 năm 2012 lúc 6:11Mar 13, 2012 at 6:11
SethsethSeth
43.3K10 Huy hiệu vàng85 Huy hiệu bạc118 Huy hiệu đồng10 gold badges85 silver badges118 bronze badges
Giá trị của từ khóa this
của hàm được đặt bởi cuộc gọi, nó không phải là "ngữ cảnh". Các chức năng có bối cảnh thực thi, bao gồm giá trị này. Nó không được xác định bởi this
.
Trong mọi trường hợp, vì tất cả các chức năng đều có biến this
là thuộc tính của đối tượng biến của nó, bạn không thể tham khảo bất kỳ từ khóa this
nào khác trong phạm vi trừ khi nó được truyền vào hàm. Bạn không thể truy cập trực tiếp đối tượng biến; Bạn phụ thuộc vào độ phân giải biến trên chuỗi phạm vi, vì vậy this
sẽ luôn là bối cảnh thực thi hiện tại của this
.
Isherwood
54,7K15 Huy hiệu vàng107 Huy hiệu bạc147 Huy hiệu đồng15 gold badges107 silver badges147 bronze badges
Đã trả lời ngày 13 tháng 3 năm 2012 lúc 6:06Mar 13, 2012 at 6:06
RobgrobgRobG
Huy hiệu vàng 138K3030 gold badges167 silver badges205 bronze badges
Thật kỳ lạ khi chúng ta đang nói về this
ngoại trừ 'Qix - Monica đã bị ngược đãi' bình luận của '. Hoặc là bạn có thể nắm bắt được
'Qix - MONICA WAS MISTREATED''s comment. Either you are able to capture
2,var test = { demo: function[]{ //get the caller context here } } test.demo[];
- công nhân
3,var test = { demo: function[]{ //get the caller context here } } test.demo[];
4var test = { demo: function[]{ //get the caller context here } } test.demo[];
5 được mở rộng trong tìm nạp cho nhân viên CloudFlare [hoặc sử dụngvar test = { demo: function[]{ //get the caller context here } } test.demo[];
this
của
7] hoặcvar test = { demo: function[]{ //get the caller context here } } test.demo[];
- Đổi tên một số phạm vi của Phương thức chức năng khác -________ 7 bối cảnh bên ngoài, vì vậy
Tình huống giả thuyết này không có trường hợp sử dụng.
var test = {
demo: function[]{
//get the caller context here
}
}
test.demo[];
Để đóng cửa, người ta có thể có một nhà máy chức năng được đặt tên động vì một số lý do, trong khi duy trì bối cảnh của nó như vậy:
function body [] {}
var test = {
demo: {
[name]: function [] {return body.apply[body, arguments];}
}[name];
Không có vòng lặp, đối số
var test = {
demo: function[]{
//get the caller context here
}
}
test.demo[];
9 sẽ là function body [] {}
var test = {
demo: {
[name]: function [] {return body.apply[body, arguments];}
}[name];
0var test = {demo:{}}
const createNamedFunc = [body] => {
test.demo = return {
[name]: function [] {
return body.apply[body, arguments];
} } [name];
}
createNamedFunc[function body []{}]
Tôi thu thập 'đối tượng phương thức chức năng này là
- Phương pháp sâu sắc nhất của chức năng của các vụ khai báo đối tượng of the object-declarations
- của bộ thu phạm vi toàn cầu [đối tượng]
- Chuyển nó, cho đến khi định nghĩa hoặc khởi động loại có thể trả về loại NOR -DATA tiếp theo, không nhất thiết phải thực hiện/giao diện phạm vi mở rộng.until the next non-object nor -data-type returnable type definition or instantiation, not necessarily declaration but always implement/extension scope interface.
Đã trả lời ngày 19 tháng 6 lúc 23:23Jun 19 at 23:23