2
我有一個JavaScript代碼,使用一個函數和鍵,我可以使用「this」對象,但我添加了一個部分jsonp消費Web服務,我不能訪問「this」對象,迫使更改所有代碼以將整個路線從窗口中移除。這是我的原始代碼:JSONP和對象這
(function() {
"use strict";
console.log("Hello World!");
window.programOne = window.programOne || {};
programOne = {
varS: {
var1: "One",
var2: null,
var3: "Two"
},
demo: function(data){
console.log(JSON.stringify(data));
},
execute: function(values){
// Works correctly when calling from programOne.execute({ "item": "Lorem"});
//this.demo(values);
//> { "item": "Lorem"}
//this.varS.var2 = values;
//console.log(this.varS.var1);
console.log(this);
//It is necessary to use it with the callback. The "this" is undefined object.
//Does not work here inside "this" object?
// this.demo(values);
window.programOne.demo(values);
},
start: function(){
window.executeMyCB = programOne.execute;
var script = document.createElement('script');
script.src = "http://whatever.com/the/script.js&callback=executeMyCB";
document.getElementsByTagName('head')[0].appendChild(script);
}
};
// Demo
programOne.execute({ "item": "Lorem"});
programOne.start();
}());
可以訪問對象的函數和變量而不必用「窗口」指定它?從自己的腳本獲得訪問權限,但由於運行jsonp的函數(window.executeMyCB)不會讓我使用「this」。我認爲,作爲JavaScript的新手,我不太瞭解,並適應這些代碼解決了我的錯誤,並理解我對這個對象的問題/操作。
感謝
謝謝。它工作正常,我現在正在閱讀關於綁定,以瞭解它爲什麼起作用 – Anto 2015-02-10 16:26:13