前端开发面试笔试学习--JavaScript01

1、Js面向对象的几种方式

1.对象的字面量 var obj = {}

2.创建实例对象 var obj = new Object();

3.构造函数模式 function fn(){} , new fn();

4.工厂模式:用一个函数,通过传递参数返回对象。

function fn(params){

var obj =new Object();

obj.params = params; 

return obj;

},

fn(params);

5.原型模式:

function clock(hour){}
 fn.prototype.hour = 0; 
new clock();

首先,每个函数都有一个prototype(原型)属性,这个指针指向的就是clock.prototype对象。

而这个原型对象在默认的时候有一个属性constructor,指向clock,这个属性可读可写。

而当我们在实例化一个对象的时候,实例newClock除了具有构造函数定义的属性和方法外(注意,只是构造函数中的),还有一个指向构造函数的原型的指针,ECMAScript管他叫[[prototype]],这样实例化对象的时候,原型对象的方法并没有在某个具体的实例中,因为原型没有被实例

 

2、 Javascipt的本地对象,内地对象和宿主对象

本地对象:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError, 简单来说,本地对象就是 ECMA-262 定义的类.

内置对象:ECMA-262 把内置对象(built-in object)定义为“由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已被实例化了。

同样是“独立于宿主环境”。根据定义我们似乎很难分清“内置对象”与“本地对象”的区别。而ECMA-262 只定义了两个内置对象,即 Global 和 Math (它们也是本地对象,根据定义,每个内置对象都是本地对象)。

如此就可以理解了。内置对象是本地对象的一种。而其包含的两种对象中,Math对象我们经常用到,可这个Global对象是啥东西呢?

Global对象是ECMAScript中最特别的对象,因为实际上它根本不存在,有点玩人的意思。大家要清楚,在ECMAScript中,不存在独立的函数,所有函数都必须是某个对象的方法。

类似于isNaN()、parseInt()和parseFloat()方法等,看起来都是函数,而实际上,它们都是Global对象的方法。而且Global对象的方法还不止这些.

宿主对象: ECMAScript中的“宿主”就是我们网页的运行环境,即“操作系统”和“浏览器”。所有非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。所有的BOM和DOM对象都是宿主对象。因为其对于不同的“宿主”环境所展示的内容不同。其实说白了就是,ECMAScript官方未定义的对象都属于宿主对象,因为其未定义的对象大多数是自己通过ECMAScript程序创建的对象。自定义的对象也是宿主对象。

3、对象中属性值的访问问题

 this.alarmLevelData=[
            {value:12340, name:'一级告警'},
            {value:11890, name:'二级告警'},
            {value:10312, name:'三级告警'},
            {value:9255,  name:'四级告警'}
          ];
          console.log('test',this.alarmLevelData[1].value)

举例

 "data": {
    "1": "29",
    "2": "6",
    "3": "6",
    "4": "13"
  }

 let j=1;
 console.log('thisobject',thisobject)
 console.log('thisobject.j',thisobject.j)
//上面这种访问方法时错误的,原因,对象后面不能跟.变量来访问属性值
//解决方法:把变量放到中括号中,或者直接把属性名放到中括号中
 console.log('thisobject.j',thisobject[1])

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值