js里面怎么动态的为对象添加属性

js里面怎么动态的为对象添加属性,第1张

添加属性用setAttribute()方法,可以传入两个参数,第一个是属性名称,第二个是要设置的属性值

var li = document.getElementsByTagName('li')[0]

//设置 li 属性,如 data-falg,设置为true

li.setAttribute("data-falg", "true")

也可以获取属性用getAttribute(),传入一个参数,是想获取的属性名称,返回的是该属性的值

简单的补个例子上,希望楼主能把addMethods的第二个参数大致有几种情况写清楚。

我再把我的答案补充完整

//判断类型的方法

var isType = function(object) {

  return Object.prototype.toString.call(object)

    .match(/^\[object\s(.*)\]$/)[1]

}

var addMethods = function(obj, arr){

    if(isType(obj) !== 'Object'){

        return alert('第一个参数必须是对象!')

    }

    //TODO

}

解释你追问中的代码为什么不行:

var b=“123”

b.len="nihao"

alert(b.len)

第一行给b赋值为"123",那么b就被定义为字符串类型的变量了,而不是一个基于自定义类的对象。

而对于字符串变量,是不能再给它赋一个自定义的len属性的。

另外,字符串变量有个只读的length属性,表示字符串的长度。

可以访问该属性:

alert(b.length) //OK

但不能赋值,赋值无效:

b.length = 6//无效


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11739827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存