JavaScript学习总结1
/***我是切割线 的開始***/ //利用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的更多相关文章
- JavaScript学习(一) —— 环境搭建与JavaScript初探
1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...
- Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”
Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...
- JavaScript学习(3):函数式编程
在这篇文章里,我们讨论函数式编程. 什么是函数式编程?根据百度百科的描述,“函数式编程是种编程典范,它将电脑运算视为函数的计算.函数编程语言最重要的基础是 λ 演算(lambda calculus). ...
- JavaScript学习(2):对象、集合以及错误处理
在这篇文章里,我们讨论一下JavaScript中的对象.数组以及错误处理. 1. 对象 对象是JavaScript中的一种基本类型,它内部包含一些属性,我们可以对这些属性进行增删操作. 1.1 属性 ...
- JavaScript学习13 JavaScript中的继承
JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...
- JavaScript学习12 JS中定义对象的几种方式
JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...
- JavaScript学习11 数组排序实例
JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: va ...
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...
- JavaScript学习09 函数本质及Function对象深入探索
JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...
- JavaScript学习08 Cookie对象
JavaScript学习08 Cookie对象 JavaScript Cookie Cookie对象: Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cooki ...
随机推荐
- 网站实战 从效果图开始CSS+DIV 布局华为网站
经过我们的前面css的学习,我们已经分模块的掌握的CSS的技术,但是,要是完整的做一个页面,我们还没有接触过,这次呢,小强老师来和大家完整的利用CSS+DIV做一个网站案例,我们来模仿下华为的网站. ...
- 阿里云ECS专有网络产品三个步骤配置教程
阿里云ECS专有网络产品三个步骤配置教程 阿里云专有网络节点已开通地域:美国硅谷可用区1B,新加坡可用区A,北京可用区A,深圳可用区A,杭州可用区D,上海可用区B 举个栗子:购买 美国硅谷可用区1B ...
- Python与开源GIS:在OGR中使用SQL语句进行查询
摘要: 属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使 ...
- 终于懂了:TWinControl主要是Delphi官方用来封装Windows的官方控件,开发者还是应该是有TCustomControl来开发三方控件
再具体一点,就是TWinControl一般情况下不需要Canvas和Paint(TForm是个例外),而TCustomControl自带这2个. 同时开发者应该使用TGraphicControl,而不 ...
- C++断言assert
assert宏是在标准库中提供的.它在库文件<cassert>中声明,它能够在程序中測试逻辑表达式,假设指定的逻辑表达式是false,assert()就会终止程序,并显示诊断消息.关闭断言 ...
- 73_leetcode_Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree 1:中序和后序遍历构成一棵树.2:採用递归的方法. ...
- 跨平台编程中的宏定义(__LINE__和__DATE__极其有用)
要用师兄的计算机算东西,无赖那上面是WINDOWS的系统,为了写出能够跨平台的代码,需要在代码中用到宏来选择编译.一种方法是自己在Makefile里面定义好该平台对应的宏.实际上,编译器基本上都会有一 ...
- javascript 中 undefined 和 null 区别
1.相同点 如果我们直接用 undefined == null 比较他们是相等的返回的将是 true. 2.区别 当我们用undefined === null 比较的时候最后返回的将是 false. ...
- 1.1.2-学习Opencv与MFC混合编程之---画图工具 画直线 画圆 画矩形
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961685 画图工具 1. 画直线 Ø 增加‘直线’菜单项,建立类向导: Ø 对CXX ...
- css 水平居中的办法
<div style="width: 100%; text-align: center; margin: auto;"> <div style="dis ...