博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS原型
阅读量:6345 次
发布时间:2019-06-22

本文共 1207 字,大约阅读时间需要 4 分钟。

原型与类

类是一个抽象的,可以构造对象,就是一个抽象到具体的过程。一般用new。

原型:是一个具体到具体的过程。
使用现有的对象,去构造一个新的对象。

有两种方法从原型来构造对象。

(1) Object.create();

Object.create(proto, [propertiesObject])

- proto 一个对象,作为新创建对象的原型。
- properiesObject 对象的属性定义。

每个实例对象都有一个 __proto__属性指向原型,公用其中的方法和属性。

这个属性是一个隐私属性,不可以被修改。

 

 

(2) 构造函数

函数有一个prototype属性。

使用构造函数创建对象,每个对象都有一个原型,就是prototyoe这个属性。
用new创建对象,就是构造函数

 

 

function Person (name) {	this.name = name;}Person.prototype = {	start :function() {		console.log('%s start', this.name);	},	run : function () {		console.log("%s is running...", this.name);	}}var lily = new Person('lily');var tom = new Person('ton');lily.run();		//lily is running...tom.run();		//ton is running...

 

new 创建一个对象分为三步。

(1)首先,创建一个lily的Person的对象
(2)设置lily的_porto_的这个属性,指向Person.prototype。
(3)Person.call(lily, arguments);使用Person类去初始化lily对象。(看,这里最后还是用call来改变this创建对象的。)

 

型链--实例

对象的原型链从最下层的对象,到最高的Object.prototype,截至。
并且就近原则。找到最近的进行操作。

对象的操作,无论是修改还是删除属性,都不会对原型上面进行影响。

hasOwnProperty:方法,来源于Object.prototype上面。
判断传入的属性是不是对象自身的属性。
传入的属性如果返回时假,要么属性在原型上面,要么不存在。
lily.hasOwnProperty('name'); // true
lily.hasOwnProperty('logo'); // false

函数也是对象 来源于 Function() { }
而Function自己也有_proto_ , 最终指向Object.prototype.

 

转载于:https://www.cnblogs.com/hgonlywj/p/4857389.html

你可能感兴趣的文章
OpenSSL 提取 pfx 数字证书公钥与私钥
查看>>
Keepalived详解(四):通过vrrp_script实现对集群资源的监控【转】
查看>>
CollapsingToolbarLayoutDemo【可折叠式标题栏,顺便带有CardView卡片式布局】
查看>>
CentOS7.4安装配置mysql5.7 TAR免安装版
查看>>
解决IE二级链接无法打开故障
查看>>
Windows phone应用开发[16]-数据加密
查看>>
SQL Server 迁移数据到MySQL
查看>>
通用数据压缩算法简介
查看>>
The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
查看>>
(笔记)找工作,该怎么进补
查看>>
div的显示和隐藏以及点击图标的更改
查看>>
(轉貼) Ubuntu將在ARM平台netbook上現身 (SOC) (News) (Linux) (Ubuntu)
查看>>
SQL注入测试工具:Pangolin(穿山甲)
查看>>
在html 的img属性里只显示图片的部分区域(矩形,给出开始点和结束点),其他部份不显示,也不要拉伸...
查看>>
程序员第二定律:量化管理在程序员身上永无可能
查看>>
ubuntu一些脚本的执行顺序
查看>>
类继承的结构
查看>>
Intel 被 ARM 逼急了
查看>>
testng + reportng 测试结果邮件发送
查看>>
神操作:如何将Vim变成一个R语言IDE
查看>>