Có cách nào để lấy giá trị trả về của hàm khi được gọi từ cuộc gọi() hoặc áp dụng() không?Giá trị trả lại bằng lệnh gọi() hoặc áp dụng() trong JavaScript
kịch bản của tôi:
Tôi có một chức năng hoạt động tốt với apply()
chức năng. Trên đối tượng contructor:
var someObject = new SomeObject({NameFunction: "MakeNames"});
trên một vòng lặp trong phương pháp của đối tượng:
var name = "";
for (var i = 0; i < data.length; i++) {
name = window[this.NameFunction].apply(null, [data[i]]);
}
Và MakeNames
chức năng:
function MakeNames(data)
{
return data.FirstName + " " + data.LastName;
}
Đó var name
nghỉ rỗng nguyên nhân apply
không trả lại bất kỳ giá trị từ hàm. Lưu ý rằng tôi chắc chắn rằng hàm được gọi và đối số được truyền thành công. Xin vui lòng không cho tôi biết để sử dụng trực tiếp name = MakeNames(data[i]);
, bởi vì rõ ràng là tôi không muốn giải pháp này.
Không quan trọng nếu đó là apply
, call
hoặc bất kỳ JavaScript nào phải thực hiện công việc này, nếu hoạt động.
Tôi làm cách nào để đạt được điều này?
giá trị trả lại hoạt động tốt cho tôi. chạy điều này trong giao diện điều khiển trình duyệt 'var x =" huh ".toString.apply (" test ");' set x to "test" cho tôi. –
áp dụng và cuộc gọi sẽ trả lại giá trị. Cái gì khác phải sai. bạn có thể cung cấp nhiều mã hơn đã hiển thị hàm bạn đang cố gắng gọi không? Ngoài ra toString đang làm gì? tên hàm của bạn đã là một chuỗi trong ví dụ của bạn. – Tim
@ ben336 Xin lỗi anh bạn, không thể hiểu được quan điểm của bạn. Bạn có thể đăng câu trả lời chính xác hơn không? – DontVoteMeDown