gpt4 book ai didi

javascript - obj.setAttribute ('whatever' , value) 和 obj.whatever = value 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 19:55:42 24 4
gpt4 key购买 nike

正如标题所示,有什么区别?

我猜后者至少能做到前者能做的事情。

我的观点对吗?

P.S: obj 是一个 DOM 元素

最佳答案

setAttribute 是一个 DOM 元素方法——它只能用于 DOM 元素。如果您尝试在自己的对象上使用它,则会抛出 TypeError ,因为它们不支持该方法,除非您自己创建它。例如:

var myObject = {};
myObject.setAttribute('foo', 'bar'); // this will throw a TypeError

var myDiv = document.createElement('div');
myDiv.setAttribute('foo', 'bar'); // this works fine


然而,您描述的第二种方法是将属性和方法分配给您自己的对象和 DOM 对象的有效方法(并且在大多数浏览器中为 DOM 对象内置了一些特殊的方法,例如 onclick,就像您所观察到的那样) ).

var myObject = {};
myObject.foo = 'bar';
console.log(myObject.foo); // --> 'bar'
console.log(myObject['foo']); // --> 'bar'

var myDiv = document.createElement('div');
myDiv.foo = 'bar';
myDiv.onclick = function() { console.log('clicked!') };
// same as: <div foo="bar" onclick="function() {console.log('clicked'!) }"></div>


您可以在此处阅读有关 Element 接口(interface)和支持的方法的更多信息:http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-745549614 (向下滚动一点以查看 setAttribute)

关于javascript - obj.setAttribute ('whatever' , value) 和 obj.whatever = value 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com