是否有可能以某种方式将附加属性附加到js中的字符串?我正在想象
的内容var s = "Hello World";
s.x = 'bar';
console.log(s.x);
不幸的是,s.x
在分配后为undefined
。
我知道这个问题似乎有点儿。为什么要将其他属性附加到字符串呢?在我的情况下,推理如下:我使用(设计有问题的)库,它提供了一个函数来给出一个url创建一个xhr请求。然后将url传递给带有结果的回调函数。
图片库(xhr
- 函数)类似于:
var xhr = function(url, cb){
$.ajax({
url: url,
success: function(data){
// do library stuff
// my code goes here
}
})
}
框架的一部分是,回调函数不作为函数传递,而是复制到成功处理程序体中。这样我就可以访问我的代码中的url参数了 -section。
现在在我的cb-handler中,我需要除了url之外的其他数据。有没有办法破解这个url参数?不幸的是我无法更改库:(
我打算做类似的事情:
var xhr = function(url, cb){
$.ajax({
url: url,
success: function(data){
// do library stuff
// my code goes here
// access url.foo
}
})
}
var url = 'https://example.com'
url.foo = 'bar'
xhr(url);
答案 0 :(得分:1)
根据skilldrick重复SO问题why can i add new attr to string obj
var s = new String("hello world!");
s.x = 5;
console.log(s.x); //5
console.log(s); //[object Object]
console.log(s.toString()); //hello world!
我仍然不会建议它; (不完全是直观的行为)