js实例属性和原型属性示例详解
来源:互联网 发布:大数据技能大赛试题 编辑:程序博客网 时间:2024/05/20 01:46
详情请仔细研读注释,这里就废话少说,直接上代码了。
复制代码 代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试文档</title>
<script type="text/javascript">
// 实质上属性和方法是一样的,方法是属性为引用型的函数。
//一个对象有4种属性:
// 1,构造函数通过this关键字定义的属性
// 2,构造函数通过var关键字定义的属性
// 3,构造函数的原型对象添加的属性
// 4,对象动态添加的属性
//实例的公有属性:1 通过this关键字定义的属性 可访问 1,2,3,4
//实例的私有属性:2 通过var关键字定义的属性。 可访问 2
//实例的共享属性:3 通过实例指向的原型添加的属性。 可访问 1,3,4
//实例的静态属性:4 对象动态添加的属性。 可访问 1,3,4
//总结:
// 实例属性:1,公有
// 2,私有
// 4,静态
// 原型属性:3,共享
//this定义的为特权属性。全部可访问
//var定义的为私有属性。
//动态添加的属性为公有属性。不可访问私有属性
//实例对象指向的原型属性为原型属性。不可访问私有属性,优先级低于公有属性
//实例属性主要有公有属性和特权属性构成。均可被外部和原型属性访问。主要区别在于是否可访问私有属性
//原型属性优先级低于实例属性。可被外部访问和实例属性访问(除私有属性)
//-----------------此处为分割线-----------------------------
// 公有属性:对象暴露给外部环境的属性。也是对象的属性。
// 私有属性:对象内部的属性,往往不可访问.在构造函数层面上考虑才有意义。
// 静态属性:动态添加的属性。也是对象的属性。
// 共有属性:所有构造函数生成的实例所共享的属性。
function User(){
// 公有属性:每new一个User实例对象,都有的属性。
// 为实例属性,所有实例的属性不共享内存。
// 外部可访问。
this.name='byronvis';
// 特权方法:每new一个User实例对象,都有的方法。
// 为实例方法,所有实例的方法不共享内存。
// 外部可访问。
// 可访问公有属性。
// 可访问私有属性。
this.sayName=function(){
alert(this.name);
alert(this.school);
alert(age);//变量声明会自动提前。
alert(this.sex);
};
// 私有属性:外部不可访问。
// 仅对构造函数有意义,对于new的User实例对象无意义。
var age=22;
// 私有方法:外部不可访问。
// 仅对构造函数有意义,对于new的User实例对象无意义。
function sayAge(){
alert(age);
}
sayAge();
}
// 共有属性: 共享内存。
User.prototype.school='zky';
// 共有方法:可访问公有属性。
// 共享内存。
User.prototype.saySchool=function(){
alert(this.school);
alert(this.name);
alert(this.sex);
alert(age);
};
var obj=new User();
// 静态属性:就是动态添加的实例属性。
obj.sex='man';
// 静态方法:就是动态添加的实例方法。
obj.saySex=function(){
alert(this.sex);
alert(this.name);
alert(this.school);
alert(age);
};
//-----------------此处为分割线-----------------------------
//// 证明this关键字定义的属性和动态添加的属性本质上一样的,都可认为是实例对象的公有属性。
// 验证: this关键字定义的属性访问动态添加的属性
// obj.sayName();//true
// 验证:动态添加的属性访问this关键字定义的属性
// obj.saySex();//true
// 验证:公有属性访问私有属性
// obj.sayName();//true
obj.saySex();//false
// 验证:共享属性访问私有属性
// obj.saySchool();//false
</script>
</head>
<body>
测试文档
</body>
</html>
小伙伴们是否看明白了,了解了实例属性和原型属性了吗?本文讲述的非常的详细,推荐给大家,希望对小伙伴们能有所帮助
复制代码 代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试文档</title>
<script type="text/javascript">
// 实质上属性和方法是一样的,方法是属性为引用型的函数。
//一个对象有4种属性:
// 1,构造函数通过this关键字定义的属性
// 2,构造函数通过var关键字定义的属性
// 3,构造函数的原型对象添加的属性
// 4,对象动态添加的属性
//实例的公有属性:1 通过this关键字定义的属性 可访问 1,2,3,4
//实例的私有属性:2 通过var关键字定义的属性。 可访问 2
//实例的共享属性:3 通过实例指向的原型添加的属性。 可访问 1,3,4
//实例的静态属性:4 对象动态添加的属性。 可访问 1,3,4
//总结:
// 实例属性:1,公有
// 2,私有
// 4,静态
// 原型属性:3,共享
//this定义的为特权属性。全部可访问
//var定义的为私有属性。
//动态添加的属性为公有属性。不可访问私有属性
//实例对象指向的原型属性为原型属性。不可访问私有属性,优先级低于公有属性
//实例属性主要有公有属性和特权属性构成。均可被外部和原型属性访问。主要区别在于是否可访问私有属性
//原型属性优先级低于实例属性。可被外部访问和实例属性访问(除私有属性)
//-----------------此处为分割线-----------------------------
// 公有属性:对象暴露给外部环境的属性。也是对象的属性。
// 私有属性:对象内部的属性,往往不可访问.在构造函数层面上考虑才有意义。
// 静态属性:动态添加的属性。也是对象的属性。
// 共有属性:所有构造函数生成的实例所共享的属性。
function User(){
// 公有属性:每new一个User实例对象,都有的属性。
// 为实例属性,所有实例的属性不共享内存。
// 外部可访问。
this.name='byronvis';
// 特权方法:每new一个User实例对象,都有的方法。
// 为实例方法,所有实例的方法不共享内存。
// 外部可访问。
// 可访问公有属性。
// 可访问私有属性。
this.sayName=function(){
alert(this.name);
alert(this.school);
alert(age);//变量声明会自动提前。
alert(this.sex);
};
// 私有属性:外部不可访问。
// 仅对构造函数有意义,对于new的User实例对象无意义。
var age=22;
// 私有方法:外部不可访问。
// 仅对构造函数有意义,对于new的User实例对象无意义。
function sayAge(){
alert(age);
}
sayAge();
}
// 共有属性: 共享内存。
User.prototype.school='zky';
// 共有方法:可访问公有属性。
// 共享内存。
User.prototype.saySchool=function(){
alert(this.school);
alert(this.name);
alert(this.sex);
alert(age);
};
var obj=new User();
// 静态属性:就是动态添加的实例属性。
obj.sex='man';
// 静态方法:就是动态添加的实例方法。
obj.saySex=function(){
alert(this.sex);
alert(this.name);
alert(this.school);
alert(age);
};
//-----------------此处为分割线-----------------------------
//// 证明this关键字定义的属性和动态添加的属性本质上一样的,都可认为是实例对象的公有属性。
// 验证: this关键字定义的属性访问动态添加的属性
// obj.sayName();//true
// 验证:动态添加的属性访问this关键字定义的属性
// obj.saySex();//true
// 验证:公有属性访问私有属性
// obj.sayName();//true
obj.saySex();//false
// 验证:共享属性访问私有属性
// obj.saySchool();//false
</script>
</head>
<body>
测试文档
</body>
</html>
小伙伴们是否看明白了,了解了实例属性和原型属性了吗?本文讲述的非常的详细,推荐给大家,希望对小伙伴们能有所帮助
0 0
- js实例属性和原型属性示例详解
- js面向对象原型属性和实例属性
- js-静态、原型、实例属性
- js-静态、原型、实例属性
- javascript中的原型属性和实例属性
- (转载)js对象原来也有类、实例属性和原型属性
- js中静态方法(属性)、实例方法(属性)、内部方法(属性)和原型的一点见解
- 静态属性-原型属性-实例属性
- js----prototype原型属性
- js属性具体存在位置(实例/原型)
- js的原型实例prototype--方法--属性,构造,赋值--方法同样有原型--原型含义
- JavaScript检测实例属性, 原型属性
- js修改原型的属性
- js原型里的默认属性和方法
- js中 object() 属性 和 实例属性方法
- js属性和方法的可见性:私有属性(方法),实例属性(方法),类属性(方法)
- JavaScript-原型链、prototype和__proto__属性详解
- 类属性和实例属性详解(python)
- SPFA ---可以解决dijsktar出现负权的
- CFileStatus 使用详解
- 数据库的三级模式:外模式、模式和内模式
- 提高Android Support Library稳定性的三个关键方法
- 第十三周 项目4:(1)
- js实例属性和原型属性示例详解
- UML中的关系
- 曹操乃奸雄----(奸贼、奸雄、枭雄定义)、曹操他爸花了一亿元钱买官来的
- 第13周项目5-字符串操作(2.3)
- [Swift]可选链和ARC引用计数
- telnet: connect to address 127.0.0.1: Connection refused问题
- 第十三周项目四(三):选择排序
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- hdu 1016 Prime Ring Problem