侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130555 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

对javascript对象的理解

2024-05-09 星期四 / 0 评论 / 0 点赞 / 5 阅读 / 3291 字

说实话,以前会用js,就是在标签上绑定个事件,就像 <span onclick="doSome()"></span>,在script中写 functiondoSome(){} .至于对象,呵呵,完全不

   说实话,以前会用js,就是在标签上绑定个事件,就像 <span onclick="doSome()"></span>,在script中写 function doSome(){} .至于对象,呵呵,完全不懂.

   在我的理解中,js的对象和 java中的对象很相似,本来就是嘛,这两个有着千丝万缕的联系.不同的是,java中用class 当前缀,如 public class Person{} ,而在js中,用 function Person(){}.当我们这样:  var person =new Person(); 一个person 对象就生成了.里面是空的 .而如果代码是这样:

function Person(name,age){

this.name=name;

this.age=age;

}

var person =new Person("xiaoxiao",25);

这个person对象,他的名字就是"xiaoxiao" ,age=25

用console.log("person名字是--->"+person.name+"  年龄是"+person.age);可以在控制台打印出来.

在js中,也可以这样直接得到一个对象: var obj={};

但是里面的值要这样形式:{arg1:"xiaofeiji",arg2:20}

键值对的形式,中间用 逗号 分开来.键一般都是string类型,值可以任意,如果是数字,可以直接写,如果是其他值,作用域中要能取到.如果没有,就会这样  :

Uncaught ReferenceError: a is not defined

运行的时候直接报错.

值也可以是一个对象,如把上面的 person放进去. var obj={person:person,title:"我是个人"}

这个时候 obj.person  就是person 了.想取值,再继续 .属性

有句话很重要,只有对象才能 .属性   .对象   

例如,var a="abc"; 要是 a.xxx 绝壁报错.

关于取值问题,可以用  obj.title 这样取值,也可以用 obj["title"] 这样取值.

在原生js中,操作dom对象,改变他的样式,可以这样:

var my_dom=document.getElementById("my_dom");

my_dom.style.height="20px";

my_dom.style.width="20px";

my_dom.style.border="1px solid red";

这样style属性就改变了.可以在浏览器上直接看出来.

也可以用这样的办法:

my_dom["style"]["height"]="20px";

my_dom["style"]["width"]="20px";

my_dom["style"]["border"]="20px";

是不是感到很奇怪,怎么会有两种,就算不感到奇怪,也感觉不正常,为什么要两种呢,一种不就可以了吗?其实,第二种方法很有用的,接下来我就告诉你.

如果有一天,你要把这个做成一个组件,通关传参来修改 my_dom 的 样式

你就要这样写  function updateStyle(key,value){

                               my_dom.style.key=value;

                        }

原谅我偷懒了,没有获取 my_dom 对象就直接用了.上面的写法错误的,不相信的可以试试.但是,你要是这样   my_dom.style[key]=value; 这样就是对的.当然你的值传的要正确,不然怎么会有效果.

肚子里没干货了,就这么点....虽然 jQuery很好用,但是写原生 js 还是好开心,因为这是自己写的!!

 

 

 

广告 广告

评论区