您的位置:首页 > Web前端 > JavaScript

javascript 面向对象1

2015-10-24 10:41 344 查看
<span style="font-family: Georgia, serif; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; background-color: rgb(245, 245, 213);">Javascript是一种基于对象(object-based)的语言,对象包含</span><span style="font-family: Georgia, serif; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; background-color: rgb(245, 245, 213);">属性"(property)和"方法"(method)</span>
一:声明对象1>原始声明
<span style="color: rgb(17, 17, 17); font-size: 16px; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre">	</span>var cat1 = {}; // 创建一个空对象</span>
<pre name="code" class="javascript" style="color: rgb(17, 17, 17); font-size: 16px; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px;"><span style="white-space:pre"></span><pre name="code" class="javascript">
<span style="white-space:pre">	</span>cat1.name = "大毛"; // 给对象的属性赋值
<span style="white-space:pre">	</span>cat1.color = "黄色";
2>函数声明
<span style="color: rgb(17, 17, 17); font-size: 16px; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; font-family: Arial, Helvetica, sans-serif;"><span>	</span></span><span style="color: rgb(17, 17, 17); font-family: Arial, Helvetica, sans-serif; font-size: 16px; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px;">function Cat(name,color){</span><span style="color: rgb(17, 17, 17); font-size: 16px; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; font-family: Arial, Helvetica, sans-serif;"><span></span></span><pre name="code" class="javascript">    return {
      name:name,
      color:color
    }
  }
<span style="color: rgb(17, 17, 17); font-family: Consolas, Monaco, 'Andale Mono', monospace; font-size: 16px; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; background-color: rgb(245, 242, 240);">var cat1 = Cat("大毛","黄色");//实例化一个对象</span>
</pre><pre name="code" class="javascript" style="color: rgb(17, 17, 17); font-size: 16px; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px;"><span style="letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; font-family: Georgia, serif; background-color: rgb(245, 245, 213);">3>构造函数</span>
<span style="letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; font-size: 16px; font-family: Arial, Helvetica, sans-serif;">	</span><span style="letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; font-family: Arial, Helvetica, sans-serif; font-size: 16px;">function Cat(name,color){</span>
<pre name="code" class="javascript">    this.name=name;    <pre name="code" class="javascript" style="color: rgb(17, 17, 17); font-size: 19.2000007629395px; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px;"><span style="white-space:pre">	</span>this.color=color;
  }
<span style="font-family: Consolas, Monaco, 'Andale Mono', monospace; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; background-color: rgb(245, 242, 240);"><span style="color: rgb(17, 17, 17); font-family: Consolas, Monaco, 'Andale Mono', monospace; font-size: 16px; letter-spacing: -0.119999997317791px; line-height: 28.7999992370605px; word-spacing: 2.40000009536743px; background-color: rgb(245, 242, 240);">var cat1 = new Cat("大毛","黄色");</span>;//实例化一个对象</span>
实例自动含有一个constructor属性,指向它们的构造函数。alert(cat1.constructor== Cat); //truealert(cat1 instanceof Cat); //true 验证对象类型4〉Prototype模式Javascript规定,每一个构造函数都有一个prototype属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数的实例继承。这意味着,我们可以把那些不变的属性和方法,直接定义在prototype对象上。  function Cat(name,color){    this.name = name;    this.color = color;  }  Cat.prototype.type = "猫科动物";  Cat.prototype.eat = function(){alert("吃老鼠")};然后,生成实例。  var cat1 = new Cat("大毛","黄色");  var cat2 = new Cat("二毛","黑色");  alert(cat1.type); // 猫科动物  cat1.eat(); // 吃老鼠这时所有实例的type属性和eat()方法,其实都是同一个内存地址,指向prototype对象,因此就提高了运行效率。  alert(cat1.eat == cat2.eat); //true六、 Prototype模式的验证方法为了配合prototype属性,Javascript定义了一些辅助方法,帮助我们使用它。,6.1 isPrototypeOf()这个方法用来判断,某个proptotype对象和某个实例之间的关系。  alert(Cat.prototype.isPrototypeOf(cat1)); //true  alert(Cat.prototype.isPrototypeOf(cat2)); //true6.2 hasOwnProperty()每个实例对象都有一个hasOwnProperty()方法,用来判断某一个属性到底是本地属性,还是继承自prototype对象的属性。  alert(cat1.hasOwnProperty("name")); // true  alert(cat1.hasOwnProperty("type")); // false6.3 in运算符in运算符可以用来判断,某个实例是否含有某个属性,不管是不是本地属性。  alert("name" in cat1); // true  alert("type" in cat1); // truein运算符还可以用来遍历某个对象的所有属性。  for(var prop in cat1) { alert("cat1["+prop+"]="+cat1[prop]); }
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: