当前位置:首页 > H5 > 正文内容

javascript原型基础知识

高老师7年前 (2017-10-07)H51657
//我们创建每个函数默认都有一个prototype(原型)属性,这个属性是一个对象

//1.我是普通的构造方法,我的属性叫实例属性,我的方法叫实例方法
/*
function Box(name,age){
	this.name=name;
	this.age=age;
	this.run=function(){
		return this.name+'--'+this.age;
	}
}
*/


//2.原型中的属性叫原型属性,原型中的方法叫原型方法
function Box(){
	Box.prototype.name='gao';
	Box.prototype.age=23;
	Box.prototype.run=function(){
		return this.name+'-'+this.age;
	}	
}

var box1=new Box();
var box2=new Box();
console.log(box1.run==box2.run);//原型方法地址是共享的返回true


//3.prototype和__proto__的关系
console.log(box1.prototype);//这个属性是一个对象,访问不到
console.log(box1.__proto__);//这个属性是一个指针指向prototype原型对象

//4.constructor属性
console.log(box1.constructor);//构造属性,可以获取构造函数本身,作用是被原型指针定位,获得构造函数本身,可以叫做javascript原型链

//5.底层中constructor,prototype,__proto__相互串联工作

//6.判断一个对象是否指向了该构造函数的原型对象.bool返回值
console.log(Box.prototype.isPrototypeOf(box1));

//7.原型中执行顺序,优先执行实例属性和方法,然后才在原型中查找

//8.删除实例/原型对象的属性
//box1.name='wang';
//delete box1.name;
//delete Box.prototype.name;

//9.对象自身(不包括原型链)是否具有指定名称的属性如果有,返回true否则返回false
console.log(Box.hasOwnProperty('age'));
//10.in 操作符能够检查一个属性是否在一个实例或者原型中.有true,无false
console.log('age' in box1);

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:http://blog.20230611.cn/post/260.html

分享给朋友:

“javascript原型基础知识” 的相关文章

Javascript页面播放语音,Javascript语音读取页面的文字

Javascript页面播放语音,Javascript语音读取页面的文字

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script type...

使用js让手机震动,js实现手机震动

使用js让手机震动,js实现手机震动

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head>  ...

Javascript Ddos

Javascript Ddos

代码1:<!--代码开始--> <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> <script>...

 js图片旋转插件jqueryrotate

js图片旋转插件jqueryrotate

jQuery 插件——jqueryrotate,它可以实现旋转效果。jqueryrotate 支持所有主流浏览器,包括 IE6。如果提示方法不存在,可能是你的Jquery版本过低或者过高。基本语法:$('#img').rotate(90);//旋转90度其他的参数:参数类型说明默认值...

高效服务器发送事件,服务器发送事件,服务器发送事件和长轮询的区别

高效服务器发送事件,服务器发送事件,服务器发送事件和长轮询的区别

HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新。通过官网的介绍可以看出是接收服务器发送数据,千万不能和ajax混淆,网上大片博文的介绍对其解读是错误的,导致让我差点觉得这个事件很鸡肋。先看通用案例:html5:<script type=&...

ES6中let与var的区别

ES6中let与var的区别

var的作用域是全局的,let的作用域是块级的,直接看代码(其他的小区别忽略):<script type="text/javascript">     for (var a = ...