文章导航

JavaScript 本地对象、内置对象和宿主对象

2019-1-1 16:20| 作者: admin| 查看: 902| 评论: 0|来自: 蚂蚁部落

JavaScript中,有很多知识点,你没有掌握,并不会太影响工作。

比如标题中的内置对象、宿主对象和本地对象,仅是对象类别划分方面的知识。

所以对实际编写代码并不造成太大影响, 不过依然建议要这些概念有清晰的掌握。

主要基于如下几个原因:

(1).如果对这些概念不清晰,可能在阅读文档时给你造成掣肘。

(2).知识结构的全面和概念的清晰是水平提高的必备条件。

(3).对知识点的不马虎是心理上的强烈需求。

一.本地对象:

本地对象也可以叫做原生对象或者内部对象。

此类对象独立于宿主环境,由ECMA提供,所以每一种宿主环境都可以使用本地对象。JavaScript中的本地对象有Object、Function、Array、String、Boolean、Math、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError和Global。

二.内置对象:

内置对象与本地对象有如下两点相同:

(1).独立于宿主环境,由ECMA提供。

(2).每一种宿主环境都可以使用。

内置对象有自己的特点,那就是无需使用new +构造函数创建,而是JavaScript引擎初始化的时候就被创建。

比如Global对象和Math对象,大家有谁见过通过构造函数创建Math对象实例,都是采用如下使用方式:

[JavaScript] 纯文本查看 复制代码运行代码
console.log(Math.PI)

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201901/01/162112swvwekvqnvo2ewei.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

可以看到,内置对象是本地对象的一个子集。

三.宿主对象:

首先要明确什么是宿主,ECMA仅是一套规范,也就是指定的一套编程规则。

但是规则毕竟是规则,如果要发挥作用,必须要有平台或者说环境,这就是ECMA的宿主。

浏览器就是MCMA宿主之一,我们所说的JavaScript其实就是EMCA在浏览器上具体实现。

JavaScript中的宿主BOM与DOM对象,他们都属于window对象的子对象。

四.代码实例:

下面通过一个简单的代码实例,再来明确一下三个对象。

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<meta name="author" content="http://www.softwhy.com/" /> 
<title>蚂蚁部落</title>
<style>
div {
  width:100px;
  height:100px;
  background-color:#ccc;
}
</style>
<script>
function getcl(){
  var arr = []
  var i =0;
  var C = '0123456789ABCDEF';
  while(i++ < 6){
    x=Math.random()*16;
    b=parseInt(x);
    c=C.substr(b,1);
    arr.push(c);
  }
  var cl = "#"+ arr.join('');
  return cl;
}
window.onload = function () {
  var obt = document.getElementById("bt");
  var odiv = document.getElementById("ant");
  obt.onclick = function () {
    odiv.style.backgroundColor = getcl();
    odiv.style.width=Math.random()*150+"px";
  }
}
</script>
</head> 
<body>
<div id="ant"></div>
<input type="button" id="bt" value="查看演示"/>
</body>
</html>
 点击按钮可以随机设置元素的背景颜色和宽度,代码分析如下:
(1).上面有赋值运算符(=)的应用,这是ECMAS制定的规范。
(2).document.getElementById方法则是宿主对象document所提供的。
(3).在获取随机颜色和宽度的时候都用到了Math对象,这是本地对象提供了,同时也是内置对象。
(3).parseInt方法属于Global对象,属于本地对象,也属于内置对象,都是ECMA规范提供。
1

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

最新评论

返回顶部