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

 //利用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. java多线程中synchronized关键字的用法

    转自:http://www.cdtarena.com/javapx/201308/9596.html 由于同一进程内的多个线程共享内存空间,在Java中,就是共享实例,当多个线程试图同时修改某个实例的 ...

  2. Mockito简介(转)

    Mockito 是目前 java 单测中使用比较流行的 mock 工具.其他还有 EasyMock,JMock,MockCreator,Mockrunner,MockMaker 及 PowerMock ...

  3. date、datetime、string的相互转换

    import datetime import time string转datetime str = '2012-11-19' date_time = datetime.datetime.strptim ...

  4. Jump的计划

    欢迎訪问我的github:https://github.com/xdnm 1.熟悉cocos2dx2.2.3开发框架 a.熟悉cocos2d api                           ...

  5. VC实现URL编解码器

    //变化UTF8为了中国 void UTF8ToGB(CString& szstr) { WCHAR* strSrc; TCHAR* szRes; int i = MultiByteToWid ...

  6. 幻世(OurDream)2D图形引擎使用教程8——处理操作输入(2)

    声明:本教程版权归Lizcst Software Lab所有,欢迎转载,但是转载必须保留本段声明文字,并注明文章来源:http://blog.csdn.net/kflizcst 谢谢合作! 今天的教程 ...

  7. Cocos2d-x使用android拍照功能加载照片内存过大,通过另存照片尺寸大小解决

    使用2dx调用android拍照功能,拍照结束后在2dx界面显示拍照照片,如果不对照片做处理,会出现内存过大的问题,导致程序崩溃,如果仅仅另存拍照照片,则照片质量大小均下降,导致照片不够清晰,后来发现 ...

  8. 基于visual Studio2013解决C语言竞赛题之1026判断排序

          题目 解决代码及点评 /********************************************************************** ...

  9. Nodejs 项目开发

    最近这几个月都在学习nodejs. 国内nodejs的资料相对较少,就我所搜索到的,CSDN目前的代码托管平台有不少从github弄过来的开源镜像,其它的不错的社区有cnodejs,byvoid的个人 ...

  10. android Asynctask的优缺点?是否能同一时候并发100+asynctask呢?

    一  Asynctask的优缺点? AsyncTask,是android提供的轻量级的异步类,能够直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步运行的程度(能够通过接口实现UI ...