菜鸟快飞之JavaScript对象、原型、继承(一)
有前辈说过,在JavaScript中,一切皆对象。由此可见,作为JavaScript的核心之一,对象是有多么重要。虽然今天走亲戚有点累,但还是得写写这个对象,免得吃几天好的,就又忘光了。
1.创建对象
通过内置对象创建:
var obj1 = new Object(); typeof obj1; // object var obj2 = new Array(); typeof obj2; // object var obj3 = new String(); typeof obj3; // object
通过字面量创建:
var obj = { name: '非鱼', age: 22, msg: function() { console.log('我叫' + this.name + ',今年' + this.age + '岁。'); } }; obj.msg(); // 我叫非鱼,今年22岁。
通过函数创建:
对于刚接触JavaScript的朋友来讲,前面两种方法可能非常熟悉了,但是对于这第三种可能有些陌生。我一直觉得对于一个问题,我们要知其然,也要知其所以然,所以虽然我也没怎么用过,但是还是去查了一下原因。
其实原因很简单,通过函数来创建对象,就是为了复用,以及减少代码的大量重复,还是举个例子。
我们需要创建小明和小红两个对象,如果使用字面量方式创建,会是下面这样:
var xiaoming = { name: '小明', age: 22, hello: function() { console.log('大家好,我叫:' + this.name); } }; xiaoming.hello(); var xiaohong= { name: '小红', age: 20, hello: function() { console.log('大家好,我叫:' + this.name); } }; xiaohong.hello();
从上面就能看出来,两个对象除了值不一样外,其余都一样,所以我们为了避免重复,就需要用到通过函数的方式。还是接着上面的小明小红:
function Person(name,age){ this.name = name; this.age = age; this.hello = function() { console.log('大家好,我叫:' + this.name); } } var xiaoming = new Person('小明',22); xiaoming.hello(); var xiaohong = new Person('小红',20); xiaohong.hello();
这只是一个小栗子,对于越复杂的问题,效果越是明显。
通过函数来创建对象,有几种模式,其中涉及到原型,所以就干脆放到后面讲。
2.访问对象属性
var person = { name: '张三', age: 26, gender: '男', }; person.name; // 通过点表示法访问 var name2 = 'name'; person[name2] = '李四'; // 方括号方式访问,优点是可以通过变量访问