Javascript基础知识盲点总结——对象

一、定义对象的基本格式:

var hero = {
breed: ‘Turtle’,
occupation: ’Ninja’,
talk: function(){
    alert(“A!!”);
    }
author: {
    firstname: ‘Martin’,
    lastname: ‘Lu’
   }
}

属性名加不加引号都可以,但是当属性名有保留字或特殊字符(空格等)时,需要加引号

 

二、对对象属性的操作

可以随时为对象添加/删除属性或者方法:

var hero = {};
hero.breed = ‘turtle’;
hero.name = ‘Alice’;
hero.sayName = function(){ return hero.name; }

在一个对象中,this指向的就是这个对象,比如如下调用方法:

var hero = {
name: ‘Martin’,
sayName: function(){
    return this.name;
}
}
hero.sayName();

三、使用构造器函数来创建对象

可以在创建对象时接受一些参数,使用new关键字创建对象

function Hero(name){
this.name = name;
this.occupation = ‘Ninja’;
this.whoAreYou = function(){
    return “I am” + this.name +this.occupation;
}
}
var hero = new Hero(‘Martin’);

 

四、构造器属性

创建一个对象时,该对象都会自动生成构造器属性,它指向用于创建该对象的构造器函数的引用。

比如hero.constructor,返回的就是Hero(name)

可以利用该属性创建另一个新对象,示例如下:

var hero1 = new hero.constructor(‘Martin’);

注意上面的代码中即使hero对象之前没有被创建,也可以用它以这种方法创建新对象

如果对象是通过文本标识法创建的,则是由内建函数构造器Object()创建的,如下:

var o = {};

o.constructor;

>>>Object()

typeof o.constructor;

>>>”function”


五、使用返回对象的函数创建对象

可以使用返回对象的函数创建对象:

function factory(name){
return {
    name: name;
}
}
var o = factory(“Martin”);
o.name;   //返回Martin
o.constructot;   //返回Object()

这种返回对象的函数用new来创建对象时会发生问题:new创建出来的(由构造器返回的)对象不再是factory对象而是其中包含name属性的对象

你可能感兴趣的:(javascript,前端开发常用技巧经验记录)