我正在修改這個優秀的JavaScript庫,用於自動完成html輸入see here ...因爲我需要通過一些extraparameters到Ajax調用。其實我正在尋找一些非破壞性的東西,以便它可以管理這個庫的默認行爲,也可以處理「沒有額外參數」。Javascript中,添加東西在大括號和定義
,所以我想我會用一個空測試myExtra像
myExtra = {b : 'b', c: 'c'}
// or maybe a thing like myExtra = "{b : 'b', c: 'c'}"
myAutoComplete = new Autocomplete('query', { serviceUrl:'autoComplete.rails'}, myExtra);
一個電話,做什麼,如果null或myExtra的內容「添加」到Ajax請求,從而使這部分:
new Ajax.Request(this.serviceUrl, {
parameters: { query: this.currentValue , },
onComplete: this.processResponse.bind(this),
method: 'get'
});
成爲像時myExtra不爲空或空字符串:
new Ajax.Request(this.serviceUrl, {
parameters: { query: this.currentValue , b: 'b', c: 'c'},
onComplete: this.processResponse.bind(this),
method: 'get'
});
因爲我全新的網頁開發,我的麻煩是,我不知道如何添加大括號內容{}到另一個(我不知道我甚至不明白這些是什麼......)
我想我要做到這一點王的東西,Python的接受,但我只是不知道的JavaScript如何能做到這一點,
>>> class A:
def __init__(self, data):
self.data = data
>>> a = A("my data")
>>> dir(a)
['__doc__', '__init__', '__module__', 'data']
>>> myExtra = "b='b';c='c'"
>>> for x in myExtra.split(";"):
var, value = x.split('=')
setattr(a, var, value)
>>> dir(a)
['__doc__', '__init__', '__module__', 'b', 'c', 'data']
>>> print a.data, a.b, a.c
my data 'b' 'c'
所以請,如果您有理解這個任意球,謝謝你在前進。
大括號使用** [Object Literals](http://www.dyn-web.com/tutorials/obj_lit.php)定義一個'Object' ** – Matt