您现在的位置:首页 >> JS&Jq >> 内容

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

时间:2016-5-18 10:43:03 点击:

  核心提示:一、定义对象的基本格式:?1234567891011var hero = {breed: ‘Turtle’,occupation: ’Ninja’,talk: function(){alert(“A!...

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

?
1
2
3
4
5
6
7
8
9
10
11
var hero = {
breed: ‘Turtle’,
occupation: ’Ninja’,
talk: function(){
    alert(“A!!”);
    }
author: {
    firstname: ‘Martin’,
    lastname: ‘Lu’
   }
}

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

二、对对象属性的操作

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

?
1
2
3
4
var hero = {};
hero.breed = ‘turtle’;
hero.name = ‘Alice’;
hero.sayName = function(){ return hero.name; }

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

?
1
2
3
4
5
6
7
var hero = {
name: ‘Martin’,
sayName: function(){
    return this.name;
}
}
hero.sayName();

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

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

?
1
2
3
4
5
6
7
8
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”

 

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

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

?
1
2
3
4
5
6
7
8
function factory(name){
return {
    name: name;
}
}
var o = factory(“Martin”);
o.name;   //返回Martin
o.constructot;   //返回Object()

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

作者:不详 来源:网络
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 青春网络编程技术(www.qcfupo.com) © 2020 版权所有 All Rights Reserved.
  • Powered by qcfupo! V3.0sp1
  • 百度友情链接: 百家乐[www.chinawestnews.net/aomenbaijiale/] 赌博网[www.chinawestnews.net/amdbwz/] 海立方[www.bjl.gov.cn/bjgylc/] 娱乐城[www.gtxrmzf.gov.cn/mapai/] 娱乐城[www.hfsf.gov.cn/yfgj/] 威尼斯人[www.hllinkou.gov.cn/baijile/] 澳门威尼斯[www.jjwgj.gov.cn/wnsr/] 888真人[www.lagm.gov.cn/888zhenren/] 百乐坊[www.laoling.gov.cn/blfylc/] 现金网[www.longyu.gov.cn/xjw/] 百家乐[www.chinawestnews.net/ambjl/] 新葡京娱乐场[www.sjzedu.gov.cn/jsylc/] 时时彩[www.snjw.gov.cn/ssc/] 赌博[www.chinawestnews.net/aomendubo/]