在js

时间:2017-03-30 09:26:06

标签: javascript string properties

是否有可能以某种方式将附加属性附加到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);

1 个答案:

答案 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!

我仍然不会建议它; (不完全是直观的行为)