基于HTML和JS教你一步步搭建物联网系统

  我们就有了和document.write一样的用法,这也是对象的美妙之处,只是这里的对象只是包含着基本值,因为

  typeof story.tang="number"

  一个包含对象的对象应该是这样子的。

  store={};

  store.tang=4;

  store.num=3;

  document.writeln(store.tang*store.num);

  var wall=new Object();

  wall.store=store;

  document.write(typeof wall.store);

  而我们用到的document.write和上面用到的document.writeln都是属于这个无序属性集合中的函数。

  下面代码说的就是这个无序属性集中中的函数。

  var IO=new Object();

  function print(result){

  document.write(result);

  };

  IO.print=print;

  IO.print("a obejct with function");

  IO.print(typeof IO.print);

  我们定义了一个叫IO的对象,声明对象可以用

  var store={};

  又或者是

  var store=new Object{};

  两者是等价的,但是用后者的可读性会更好一点,我们定义了一个叫print的函数,他的作用也就是document.write,IO中的print函数是等价于print()函数,这也就是对象和函数之间的一些区别,对象可以包含函数,对象是无序属性的集合,其属性可以包含基本值、对象或者函数。

  复杂一点的对象应该是下面这样的一种情况。

  var Person={name:"phodal",weight:50,height:166};

  function dream(){

  future;

  };

  Person.future=dream;

  document.write(typeof Person);

  document.write(Person.future);

  而这些会在我们未来的实际编程过程中用得更多。

  3.3.4 面向对象

  开始之前先让我们简化上面的代码,

  Person.future=function dream(){

  future;

  }

  看上去比上面的简单多了,不过我们还可以简化为下面的代码。。。

  var Person=function(){

  this.name="phodal";

  this.weight=50;

  this.height=166;

  this.future=function dream(){

  return "future";

  };

  };

  var person=new Person();

  document.write(person.name+"
");

  document.write(typeof person+"
");

  document.write(typeof person.future+"
");

  document.write(person.future()+"
");

  只是在这个时候Person是一个函数,但是我们声明的person却变成了一个对象 一个Javascript函数也是一个对象,并且,所有的对象从技术上讲也只不过是函数。 这里的“
”是HTML中的元素,称之为DOM,在这里起的是换行的作用,我们会在稍后介绍它,这里我们先关心下this。this关键字表示函数的所有者或作用域,也就是这里的Person。

  上面的方法显得有点不可取,换句话说和一开始的

  document.write(3*4);

  一样,不具有灵活性,因此在我们完成功能之后,我们需要对其进行优化,这就是程序设计的真谛——解决完实际问题后,我们需要开始真正的设计,而不是解决问题时的编程。

  var Person=function(name,weight,height){

  this.name=name;

  this.weight=weight;

  this.height=height;

  this.future=function(){

  return "future";

  };

  };

  var phodal=new Person("phodal",50,166);

  document.write(phodal.name+"
");

  document.write(phodal.weight+"
");

  document.write(phodal.height+"
");

  document.write(phodal.future()+"
");

  于是,产生了这样一个可重用的Javascript对象,this关键字确立了属性的所有者。

  3.4 其他

  Javascript还有一个很强大的特性,也就是原型继承,不过这里我们先不考虑这些部分,用尽量少的代码及关键字来实际我们所要表达的核心功能,这才是这里的核心,其他的东西我们可以从其他书本上学到。

  所谓的继承,

  var Chinese=function(){

  this.country="China";

  }

  var Person=function(name,weight,height){

  this.name=name;

  this.weight=weight;

  this.height=height;

  this.futrue=function(){

  return "future";

  }

  }

  Chinese.prototype=new Person();

  var phodal=new Chinese("phodal",50,166);

  document.write(phodal.country);

  完整的Javascript应该由下列三个部分组成:

  核心(ECMAScript)——核心语言功能