构造函数里的this,外面的new

 <script>
//用工厂方式构造对象
function createPerson(name, sex) //构造函数
{
//假想的系统内部工作流程
//var this=new Object();
this.name=name;
this.sex=sex; this.showName=function ()
{
alert('我的名字叫:'+this.name);
};
this.showSex=function ()
{
alert('我是'+this.sex+'的');
};
//假想的系统内部工作流程
//return this;
}
var p1=new createPerson('blue', '男');
var p2=new createPerson('leo', '女');
/*p1.showName();
p1.showSex();
p2.showName();
p2.showSex();*/
alert(p1.showName==p2.showName);
</script>

new出来的Object

类----这个东西类似于CSS里面的class,用来构造对象。类=构造函数

对象(实例)-----有自己的功能,被类构造出来

 <script>
function show()
{
alert(this);
}
show(); //window
new show(); //新创建的对象
</script>

原型---解决了资源浪费,多次重复的创建对象的问题。

 <script>
var arr1=new Array(12, 5, 8, 4);
var arr2=new Array(44,6,5,4,5,55,9);
//arr1.sum=function ()
Array.prototype.sum=function ()
{
var result=0;
var i=0;
for(i=0;i<this.length;i++)
{
result+=this[i];
}
return result;
};
/*alert(arr1.sum());
alert(arr2.sum());*/
alert(arr1.sum==arr2.sum);
</script>

构造函数+prototype

 <script>
function Person(name, sex)//构造函数用来添加属性,属性是变化的
{
this.name=name;
this.sex=sex;
}
Person.prototype.showName=function ()//原型用来添加方法,方法是不变的
{
alert(this.name);
};
Person.prototype.showSex=function ()
{
alert(this.sex);
};
var p=new Person('bee', '男');
p.showName();
p.showSex();
</script>

原型和对象方法的优先级

 <script>
Array.prototype.a=12;
var arr=[1,2,3];
alert(arr.a); //
arr.a=5;
alert(arr.a); //5,这个的优先级更高
delete arr.a;
alert(arr.a); //
</script>

面向对象---prototype的更多相关文章

  1. 面向对象---prototype、__proto__、实例化对象三者之间的关系

    1.构造函数 a.什么是构造函数? 解释:通过关键字new 创建的函数叫做构造函数 作用:用来创建一个对象 废话少说直接上代码,首先我们还是创建一个构造函数人类 然后我们在创建两个实例,一个凡尘 一个 ...

  2. 面向对象object与constructor

    什么是constructor属性?它来自哪里?又将会指向何处? 什么是constructor属性? constructor是构造函数属性. 它来自哪里? 其实constructor属性是来自 prot ...

  3. .NET WEB程序员需要掌握的技能

    本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章<<.Net WEB 程序员需要掌握的技能>>,很多人觉得比较有用,说是看了后知道一 ...

  4. NET WEB

    .NET WEB程序员需要掌握的技能 2015-12-28 08:50 by 敏捷的水, 3997 阅读, 66 评论, 收藏, 编辑 本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师 ...

  5. .Net WEB 程序员需要掌握的技能

    原文链接:http://deshui.wang/%E6%8A%80%E6%9C%AF/2015/05/12/net-study-road 基础部分 C# 基础语法 OOP的概念,面向对象的理解 继承 ...

  6. JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  7. 从Prototype学习JavaScript面向对象编程

    概述 JavaScript是一种基于对象的编程语言.它是灵活的,既有面向过程(也就是面向函数)的编程,也有面向对象的编程.因此我称它是基于对象的编程语言. 对于JavaScript的面向过程的编程特性 ...

  8. 04面向对象编程-01-创建对象 和 原型理解(prototype、__proto__)

    1.JS中对象的"不同":原型概念 从Java中我们可以很好地去理解 "类" 和 "实例" 两个概念,可是在JavaScript中,这个概念 ...

  9. 从 prototype.js 深入学习 javascript 的面向对象特性

    从 prototype.js 深入学习 javascript 的面向对象特性 js是一门很强大的语言,灵活,方便. 目前我接触到的语言当中,从语法角度上讲,只有 Ruby 比它更爽. 不过我接触的动态 ...

随机推荐

  1. eclipse折叠快捷键

    之前按代码折叠快捷键的时候发现时而灵时而不灵,今天突然发现了问题所在: 按ctrl+/(小键盘)使代码左边出现折叠标志 然后再按ctrl+shift+/(折叠)   , ctrl+shift+*(展开 ...

  2. xhr dojo load

    require(["dojo/_base/xhr"], function(xhr) { // Execute a HTTP GET request xhr.get({ // The ...

  3. FormData对象

    FF4中增加了一个很有意思的对象,FormData.通常我们提交(使用submit button)时,会把form中的所有表格元素的name与value组成一个queryString,提交到后台.这用 ...

  4. Pro ASP.NET MVC 5 Framework.学习笔记.6.3.MVC的必备工具

    每个MVC程序员的军火库中,都有这三个工具:一个依赖注入(DI)容器,一个单元测试框架,一个模拟工具. 1.准备一个示例项目 创建一个ASP.NET MVC Web Application的Empty ...

  5. PHP过滤评论关键词

    <?php /** * PHP中屏蔽过滤指定关键字实现方法总结 * http://www.111cn.net/phper/phpanqn/46225.htm * * 思路: * 一.把关键字专门 ...

  6. java 堆栈 静态

    所以静态变量和非静态变量的区别就在于静态变量可以用来计数,而非静态变量则不行. 理解了内存,就理解了一切,就理解了各种各样的语言.所有的语言无非都是这样:局部变量分配内存永远在栈里面,new出来的东西 ...

  7. $q服务的API详解

    下面我们通过讲解$q的API让你更多的了解promise异步编程模式.$q是做为angularjs的一个服务而存在的,只是对promise异步编程模式的一个简化实现版,源码中剔除注释实现代码也就二百多 ...

  8. PMO到底什么样?

    PMO到底什么样? 当将来项目办理单位彻底健全了,达到最老练的程度的时分项目办理单位应当干哪些活,有哪些大块功能,也即是关于一个全部的PMO它的功能跟人物都包含啥? 下面这个模型精确的说是英国的项目办 ...

  9. [c++][语言语法]stringstream iostream ifstream

    c++中ifstream一次读取整个文件 读取至char*的情况 std::ifstream t; int length; t.open("file.txt"); // open ...

  10. js笔记---封装自己的Ajax方法

    //地址 成功方法 失败方法function Ajax(url, funsucc, funfial) { var oAjax = null; if (window.XMLHttpRequest) { ...