js 原型
1: function Person (name,age) {
2: this.name = name;
3: this.age = age;
4: }
5:
6: Person.prototype = {
7: constructor : Person, // 原型{}这种格式得重新定义指向 要不然默认是Object
8: getInfo: function() {
9: return 'A ' + this.name + ' ' + this.age + '.';
10: }
11: };
12:
13: var p = new Person('Lily',18);
14:
15: /**
16: * Person的prototype属性指向Person的prototype对象
17: * Person的实例p的__proto__属性指向Preson的prototype对象
18: * Preson的prototype对象的constructor属性指向Person
19: */
20: console.log(p.constructor); // Person
21: console.log(p.__proto__ == Person.prototype); // true
22: console.log(p.__proto__.constructor == Person); // true p.__proto__ 指向Person的prototype对象 Person的prototype对象constructor属性指向Person构造器
23:
24: //Object.create EcmaScript5 以上有
25: var Person2 = Object.create(p); //复制对象
26: console.log(Person2.name);// Lily
27: Person2.age = 20;
28: console.log(Person2.age);// 20
29: console.log(p.age);// 20
30:
31: var o1 = Object.create({x:1, y:2});
32: var o2 = Object.create(Object.prototype);
33: console.log(o2);
34: console.log(new Object());
1: function Person (name,age) {
2: this.name = name;
3: this.age = age;
4: }
5:
6: Person.prototype = {
7: constructor : Person, // 原型{}这种格式得重新定义指向 要不然默认是Object
8: getInfo: function() {
9: return 'A ' + this.name + ' ' + this.age + '.';
10: }
11: };
12:
13: var p = new Person('Lily',18);
14:
15: /**
16: * Person的prototype属性指向Person的prototype对象
17: * Person的实例p的__proto__属性指向Preson的prototype对象
18: * Preson的prototype对象的constructor属性指向Person
19: */
20: console.log(p.constructor); // Person
21: console.log(p.__proto__ == Person.prototype); // true
22: console.log(p.__proto__.constructor == Person); // true p.__proto__ 指向Person的prototype对象 Person的prototype对象constructor属性指向Person构造器
23:
24: //Object.create EcmaScript5 以上有
25: var Person2 = Object.create(p); //复制对象
26: console.log(Person2.name);// Lily
27: Person2.age = 20;
28: console.log(Person2.age);// 20
29: console.log(p.age);// 20
30:
31: var o1 = Object.create({x:1, y:2});
32: var o2 = Object.create(Object.prototype);
33: console.log(o2);
34: console.log(new Object());
js 原型的更多相关文章
- JS原型链
JS作为发展了多年了对象语言,支持继承,和完全面向对象语言不同的是,JS依赖原型链来实现对象的继承. 首先JS的对象分两大类,函数对象和普通对象,每个对象均内置__proto__属性,在不人为赋值__ ...
- 深入分析JS原型链以及为什么不能在原型链上使用对象
在刚刚接触JS原型链的时候都会接触到一个熟悉的名词:prototype:如果你曾经深入过prototype,你会接触到另一个名词:__proto__(注意:两边各有两条下划线,不是一条).以下将会围绕 ...
- 【09-23】js原型继承学习笔记
js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...
- js原型
1.js基本类型和对象类型 js的简单类型包括数字(其中NaN为数字类型).字符串(类似'A'为字符,js没字符类型).布尔值.null值和undefined值.其他所有的值都是对象.数字.字符串和布 ...
- js原型链与继承(初体验)
js原型链与继承是js中的重点,所以我们通过以下三个例子来进行详细的讲解. 首先定义一个对象obj,该对象的原型为obj._proto_,我们可以用ES5中的getPrototypeOf这一方法来查询 ...
- JS 原型链图形详解
JS原型链 这篇文章是「深入ECMA-262-3」系列的一个概览和摘要.每个部分都包含了对应章节的链接,所以你可以阅读它们以便对其有更深的理解. 对象 ECMAScript做为一个高度抽象的面向对象语 ...
- js原型解析
我们都知道javascript因为具有了继承以及变量等等一系列的特性之后才被人们认为具有一门编程语言的资格,在后续的不断发展中,js在原生的基础上扩展了基于jquery等等的库,甚至衍生了像node. ...
- 深入理解JS原型链与继承
我 觉得阅读精彩的文章是提升自己最快的方法,而且我发现人在不同阶段看待同样的东西都会有不同的收获,有一天你看到一本好书或者好的文章,请记得收藏起来, 隔断时间再去看看,我想应该会有很大的收获.其实今天 ...
- 学习zepto.js(原型方法)
学习zepto.js(原型方法)[1] 转载 新的一周,新的开始,今天来学习一下zepto里边的原型方法,就是通过$.进行调用的方法,也是可以通过$.fn进行扩展的方法: $.camelCase(): ...
- js原型链部分详细使用说明案例
1. 'index.html'文件 ```html <!DOCTYPE html> <html lang="en"> <head> <me ...
随机推荐
- [转]shell中 source命令即点空格后面再跟可执行文件的说明
这里记录的是在一个shell脚本里面使用. ./file.sh 和./file.sh 的区别,本文参考了http://www.lslnet.com/linux/dosc1/39/linux-28353 ...
- Scala学习笔记--提取器unapply
提取器就是一个带有unapply方法的对象.你可以把unapply方法当做是伴生对象中apply方法的反向操作. apply方法接收构造参数,然后将他们变成对象. 而unapply方法接受一个对象,然 ...
- C++之------进制学习
碰到一些寄出的东西不是很理解,就是关于多进制在代码中的转换: 比喻一个数number的多进制表示方法:B:二进制 Q:八进制 D:十进制 H:十六进制 二进制:0bnumber ( ...
- Could not find qmake configuration file win32-g++
D:\Source>c:\Qt\Qt5.3.2_static\bin\qmake -makefile -o Makefile my.proCould not find qmake configu ...
- ArcGIS API for Silverlight开发入门
你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我 都没关系.但你不能否认3G是一种趋势,最终我们每个人都会被包裹在3G网络中.1100也不是一成不变,没准哪天为了打击 ...
- codility上的问题 (22)
问题描述: 用1 * 1, 1 * 2的矩形覆盖一个n行m列的矩形,问有多少种方法. 数据范围 : n [1..10^6], m [ 1..7] 要求复杂度: 时间 O(log(n) * 8 ^m ...
- centos 6.4 更新源地址
执行如下命令: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old vim /etc/yum.repo ...
- 【转】Device Tree(三):代码分析
原文网址:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html 一.前言 Device Tree总共有三篇,分别是: 1.为何要引入De ...
- opencart修改后台文件夹名
在使用opencart进行二次开发时,若需要修改后台目录的文件夹名是可以操作的.具体步骤如下: 1.将网站后台文件夹名字改成opencartadmin 2.在该文件夹下找到config.php文件如图 ...
- soj 1700 ping_简单dp
题目链接 题意:给你一个无向图,求n边的最短路 思路:用最短路想了半天都没想出来,比赛结束回去看看原来用dp做,我的dp有待提高啊 sp[i][k]=min(sp[j][k-1]+dp[j][i])/ ...