/***我是切割线 的開始***/

 //利用prototype属性能够加入公有属性和方法
function myConstructor2(){
this.a='大灰狼';
}; //声明构造函数,能够使用对象字面量语法来向prototype属性中加入全部公有成员 myConstructor2.prototype={
propertyA: 'sha' ,
propertyB: 'feng' ,
methodA:function(){
alert(this.propertyA);
},
methodB:function(){}
} var myconstrustor=new myConstructor2(); //声明对象
//alert(myconstrustor.methodA());
var myconstrustor1=new myConstructor2(); //声明对象
var myconstrustor2=new myConstructor2(); //声明对象
alert("原型类測试结果="+(myconstrustor1.propertyB === myconstrustor2.propertyB)); alert("构造函数測试结果="+(myconstrustor1.a === myConstructor2.a)); /***我是切割线 的结束***/ function member(name, sex) {
this.name = name;
this.sex = sex;
this.display = display;
} function display() {
var str = this.name + "是" + this.sex;
document.write("<LI>" + str);
}
var papa = new member("杨宏文", "男生");
var mama = new member("黄雅玲", "女生");
var doggy = new member("奇 奇", "宠物狗"); papa.display();
mama.display();
doggy.display(); /* */

总结

     1. 在构造函数中定义的属性。每一个实例都有一个副本,互不影响。可是在prototype上定义的属性,在全部的实例中共享同一个属性。对属性的改变会影响到全部的实例。

从上面总结的观点来看。假设要模拟面向对象,那么属性最好定义在构造函数中,而方法最好定义在prototye中,否则每一个实例的方法都占领一块内存,太浪费了。

2.从上面知道了Js中也有实例属性也有静态属性。但终于的目的是为了更好的了解Js中的继承,根据面向对象的思想,我们定义一个类,是为了实例化,使实例能够调用类中定义的属性、方法。因此能够这么说除非为了共享一个全局属性,普通情况下我们都应该定义实例属性、方法,这样类的实例就能够进行各种调用操作。承上启下,从源代码能够看出定义实例属性有2中方式,一种定义在构造函数中,一种是构造函数的prototype上,究竟应该使用哪一种呢。或者那种方式更好?

4.能够总结出几条规律:

1:当实例本身定义了属性。使用本身属性(能够使用hasOwnProperty进行推断);

2:假设实例本身未定义。就到构造函数中去找;

3:假设构造函数也没有,就到构造函数的prototype的实例对象上去找。

4:假设prototype的实例对象没有,就到其构造函数去找;

5:如此反复,一直到跟对象object中,没找到就报undefined错误。

JavaScript学习总结1的更多相关文章

  1. JavaScript学习(一) —— 环境搭建与JavaScript初探

    1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...

  2. Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”

    Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...

  3. JavaScript学习(3):函数式编程

    在这篇文章里,我们讨论函数式编程. 什么是函数式编程?根据百度百科的描述,“函数式编程是种编程典范,它将电脑运算视为函数的计算.函数编程语言最重要的基础是 λ 演算(lambda calculus). ...

  4. JavaScript学习(2):对象、集合以及错误处理

    在这篇文章里,我们讨论一下JavaScript中的对象.数组以及错误处理. 1. 对象 对象是JavaScript中的一种基本类型,它内部包含一些属性,我们可以对这些属性进行增删操作. 1.1 属性 ...

  5. JavaScript学习13 JavaScript中的继承

    JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...

  6. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  7. JavaScript学习11 数组排序实例

    JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: va ...

  8. JavaScript学习10 JS数据类型、强制类型转换和对象属性

    JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...

  9. JavaScript学习09 函数本质及Function对象深入探索

    JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...

  10. JavaScript学习08 Cookie对象

    JavaScript学习08 Cookie对象 JavaScript Cookie Cookie对象: Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cooki ...

随机推荐

  1. RVCT的Linux环境变量配置 ARM® RVDS™ 4.1(b713)

    下载解压 armrvds.tar.gz到/opt 下 在自己的build.sh下导入RVCT的环境变量配置ARM® RVDS™4.1(b713): export ARMROOT=/opt/armrvd ...

  2. 公司需求知识学习-WCF

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  3. Spring源代码解析 ---- 循环依赖

    一.循环引用: 1. 定义: 循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比方CircularityA引用CircularityB,CircularityB引用Circularit ...

  4. 《C++ Primer Plus》学习笔记1

    C++ Primer Plus>学习笔记1 第二章.開始学习C++ 1.控制符endl 假设显示字符串时,在字符串中包括换行符,而不是在末尾加上endl,这样能够大大降低输入量:假设是要生成一个 ...

  5. Windows NT 技术简介

    Windows NT 技术简介 NT:New Technoly(新技术,因比DOS.WIN9X采用了很多新技术而得名) Windows NT基本介绍 WindowsNT是Microsoft推出的面向工 ...

  6. VPN指定某个程序,其实是改路由表(赛风支持VPN和SSH和SSH+模式)

    其实就是使用IE代理的意思,方法有很多.最简单的就是读取注册表中的代理信息.具体找;\Software\Microsoft\Windows\CurrentVersion\Internet Settin ...

  7. Vim的常用命令笔记

    [简介] Vim是vi编辑器的改进版.vi是类UNIX系统里最常用的编辑器. [模式] 在shell中直接打vim filename就会进入普通模式.按i键进入编辑模式,此时Vim底部显示INSERT ...

  8. 面试中关于Java中涉及到知识点(转)

    本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些, ...

  9. maven setting配置

    <?xml version="1.0" encoding="UTF-8"?> <!--Licensed to the Apache Softw ...

  10. 为 Devops 和系统管理员提供的 400+ 免费资源

    014年,谷歌索引的数据量大约为200TB(1T等于1024 GB).而且,据估计,谷歌的200TB只占到整个互联网的0.004%.基本上,互联网是一个拥有无限的信息的地方. 因此,为了努力降低搜索和 ...