博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
公有属性 公有方法(原型方法) 私有属性 私有方法 特权方法 静态属性 静态方法 对象字面量创建...
阅读量:5013 次
发布时间:2019-06-12

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

示例1

1 function text(a,b,c){ 2         var si='私有变量测试'; 3         this.b = b; 4         this.my = function(){ 5             console.log(c) 6         } 7         this.sy = function(si){ 8             console.log(si) 9         }10         function ceshi(){11             console.log(a)12         }13         console.log(si);14         /*私有变量和私有方法,只能在原型对象内执行15         *实例化对象不继承16         */17 }18 text.prototype.css ={19     c : '3',20     m:'无法用this',21     mynew : function(){22         return this.c;//返回的是3,没有this的话返回Undefined23     }24 }25     var new1 = new text('a','b','test3');//=>new方法创建实例对象时,会执行对应的原型对象26     console.log(new1);27     new1.my();//test3   =>特权方法可以在外部调用28     text('a','b','test3');29     new1.sy('fdsa');//undefined =>外部实例化对象不继承私有变量;无法调用30     console.log(new1.css.mynew('das')); //=>实例化调用公共方法,对象字面量31     console.log(new1.css.m); //=>实例化调用公共方法(原型方法),对象字面量创建css公共方法32     console.log(new1.css);

示例2

1     function user(name,age){ 2         //公有属性 3         this.name = name; 4         //私有属性 5         var age = age; 6         //私有方法 7         //=>私有方法在实例化New时执行,只能内部调用 8         function alertAge(age){ 9             console.log('alertAge:'+age);10         };11         alertAge(age);12         /*特权方法*/13         this.getName = function(){14             return name;15             //注:在原型对象外创建的公共原型方法,return时需要添加this指向当前的name16         }17     }18     user.age = 26;//静态属性19     user.getName2 = function(){
//静态方法20 return this.myname;21 };22 user.prototype.getName = function(){ //公有方法23 return this.name;24 }25 var users = new user('实例名','实例年纪');26 console.log(user.age);//外部调用公有属性27 console.log(users.age);//实例对象不继承私有属性28 console.log(user.alertAge);//外部无法调用私有方法29 console.log(users.alertAge);//实例化不继承私有方法30 console.log(user.getName);//无实例化的情况下,只能调用私有属性和私有方法31 console.log(users.getName());//=>调用特权方法 echo 实例名

部分摘自http://www.jb51.net/article/64278.htm

1 var obj = new c('hello world');  2 function c(v){  3     console.log(v);  4     this.faction = v;  5 }  6 console.log(obj)  7 console.log(obj.faction);  8 /*1.公有属性和公有方法*/  9 function User(name,age){ 10   this.name = name;//公有属性 11   this.age = age; 12 } 13 User.prototype.getName = function(){ 14   //公有方法 15   return this.name; 16 } 17 var user = new User('fire子海',26); 18 console.log(user.getName());//output:fire子海 19 /*2.私有属性和方法*/ 20 function User(name,age){ 21   var name = name;//私有属性 22   var age = age; 23   function alertAge(){
//私有方法 24 alert(age); 25 } 26 alertAge(age); //弹出26 27 } 28 var user = new User('fire子海',26); 29 /*3.静态属性和方法*/ 30 function User(){} 31 User.age = 26;//静态属性 32 User.myname = 'fire子海'; 33 User.getName =function(){
//静态方法 34 return this.myname;//如果这里使用this.name,返回的将是User,所有改用了myname, 35 } 36 console.log(User.getName());//output:fire子海 37 /*4.特权方法*/ 38 function User(name,age){ 39 var name = name;//私有属性 40 var age = age; 41 this.getName = function(){ //特权方法 42 return name;//私有属性和方法不能使用this调用 43 } 44 } 45 var user = new User('fire子海',26); 46 console.log(user.getName());//output:fire子海 47 /*5.静态类*/ 48 var user = { 49 init:function(name,age){ 50 this.name = name; 51 this.age = age; 52 }, 53 getName:function(){ 54 return this.name; 55 } 56 } 57 user.init('fire子海',26); 58 console.log(user.getName());//output:fire子海 59 /*6.公有方法的调用规则*/ 60 function User(){ 61 this.myname = 'fire子海';//公有属性 62 this.age = 26; 63 this.do = function(){
//特权方法 64 return this.myname+'学习js'; 65 } 66 } 67 User.eat = function(food){ 68 return '晚餐只有'+food; 69 } 70 User.prototype.alertAge = function(){ 71 alert(this.age); 72 } 73 User.prototype.alertDo = function(){ 74 alert(this.do());//调用特权方法 75 } 76 User.prototype.alertEat = function(food){ 77 alert(User.eat(food));//只能通过对象本身调用静态方法 78 //alert(this.ear(food))这样调用将出错:this.eat is not a function 79 } 80 var user = new User(); 81 user.alertAge();//alert:26 82 user.alertDo();//alert:fire子海学习js 83 user.alertEat('方便面')//alert:晚餐只有方便面 84 /*7.静态方法的调用规则*/ 85 function User(){} 86 User.age = 26;//静态属性 87 User.myname = 'fire子海'; 88 User.getName =function(){
//静态方法 89 return this.myname; 90 } 91 var user = new User(); 92 console.log(user.getName);//TypeError: user.getName is not a function 93 user.supper = '方便面'; 94 user.eat = function(){ 95 return '晚餐只有'+this.supper; 96 } 97 user.eat();//晚餐只有方便面 98 /*8.特权方法的调用规则*/ 99 function User(girlfriend){100 var girlfriend = girlfriend;101 function getGirlFriend(){102 return '我女朋友'+girlfriend+'是美女!';103 }104 this.myname = 'fire子海';//公有属性105 this.age = 26;106 this.do = function(){
//特权方法107 return this.myname+'学习js';108 }109 this.alertAge = function(){110 this.changeAge();//特权方法调用公有方法111 alert(this.age);112 }113 this.alertGirlFriend = function(){114 alert(getGirlFriend());//调用私有方法115 }116 }117 User.prototype.changeAge = function(){118 this.age = 29;119 }120 var user = new User('某某');121 user.alertAge();//alert:29122 user.alertGirlFriend();//alert:我的女朋友某某是美女!123 /*9.私有方法*/124 function User(girlfriend){125 var girlfriend = girlfriend;126 this.myname = 'fire子海';//公有属性127 this.age = 26;128 function getGirlFriend(){129 //this.myname ;//此时的this指向的window对象,并非User对象,130 // this.myname = 'fire子海',此时的this指向的是getGirFriend对象了。131 //如果通过this调用了getGirFriend中不存在的方法呀属性,this便会指向window 对象,只有this调用了getGirlFriend存在的方法和属性,this才会指定getGirlFriend;132 alert(User.eat('泡面'));//alert:晚餐只有方便面133 }134 this.do = function(){
//特权方法135 return this.myname+'学习js';136 }137 this.alertAge = function(){138 this.changeAge();//特权方法调用公有方法139 alert(this.age);140 }141 this.alertGirlFriend = function(){142 getGirlFriend();//调用私有方法143 }144 }145 User.eat = function(supper){146 return '晚餐只有'+supper;147 }148 var user = new User('某某');149 user.alertGirlFriend();

 

转载于:https://www.cnblogs.com/NB-JDzhou/p/7207139.html

你可能感兴趣的文章
leetcode 217 Contains Duplicate 数组中是否有重复的数字
查看>>
The Ctrl & CapsLock `problem'
查看>>
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
查看>>
linux故障判断
查看>>
Leetcode 23. Merge k Sorted Lists(python)
查看>>
Java进阶知识点6:并发容器背后的设计理念 - 锁分段、写时复制和弱一致性
查看>>
Makefile ===> Makefile 快速学习
查看>>
face detection[HR]
查看>>
java性能调优工具
查看>>
C# 其他的Url 文件的路径转化为二进制流
查看>>
cmake使用
查看>>
ios7上隐藏status bar
查看>>
构造方法和全局变量的关系
查看>>
python3基础05(有关日期的使用1)
查看>>
ArrayList的使用方法
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
打印Ibatis最终的SQL语句
查看>>
HBase之八--(3):Hbase 布隆过滤器BloomFilter介绍
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>