首页 > 其他 > 详细

对象、包装类

时间:2020-03-20 19:43:10      阅读:63      评论:0      收藏:0      [点我收藏+]

一、对象

1、用已学的知识,描述一下你心目中的对象

2、属性的增(obj.smoke、obj[‘smoke‘])、删(删除属性之后再去查找返回undefined。以前的变量未经声明去查找会报错,当一个对象的属性没有会打印undefined)、改、查

技术分享图片
 1 var mrFan ={
 2       name:‘mrFan‘,
 3       age:26,
 4       sex:‘male‘,
 5       health:100,
 6       smoke:function(){
 7               console.log(‘I am smoking!‘);
 8               this.health--;
 9       },
10       drink:function(){
11               console.log(‘I am drinking!‘);
12               this.health++;
13       }
14 }
15 console.log(mrFan)
16 mrFan.wife(‘xiaoyou‘)//对象增加属性
17 mrFan.age=27//对象修改属性
18 console.log(mrFan.health)//对象查找属性
19 delete mrFan.sex //对象删除属性
View Code

3、对象的创建方法
a:字面量

var obj = {}   plainObject    对象字面量/对象直接量

b:构造函数
(1)、系统自带 new Object();Array();Number();Boolean();String();Date()
  (2)  、自定义(利用构造函数,car和car1虽然用得是同一个构造函数,但是两个是独一无二的,互不影响)大驼峰命名规则

技术分享图片
 1 function Car(){
 2     this.name = ‘BMW‘;
 3     this.height =  ‘1400‘;
 4     this.lang = ‘4900‘;
 5     this.weight = 1000;
 6     this.health = 100;
 7     this.run = function(){
 8           this.health --;
 9    }
10   
11 }
12 
13 var car = new Car();
14 var car1 = new Car();
15 car.name = ‘maserati‘;
16 car1.name = ‘Merz‘
View Code

利用new操作符的才叫构造函数,那么new操作符具体干了什么?

@创建一个空对象,并且this变量引用该对象,同事还继承了该函数的额原型

@属性和方法被加入到this引用的对象中

@新创建的对象由this引用,并且最后隐式的返回this

构造函数的内部原理?

@只要函数执行时遇见了new,就会有以下三步的执行

@在函数体最前面隐式的加上this={}

@执行this.xx = xx

@隐式的返回this(单凡用new,不能返回原始值,只能返回对象)

c:Object.create(原型)方法

二、包装类

1、基本包装类型(原始值):

  • Number
  • String
  • Boolean

特性:原始值没有属性和方法,不能给原始值赋属性值

var num = 4;
num.len = 3; //首先看到此句给原始值赋值,是违法语法规则的,所以使用包装类来解决
//会隐式的加上new Number(4).len = 3; delete
//new Number(4).len; 此处的new与上面不是一个,上面已经销毁了,这里就没有len属性了
console.log(num.len)//undefine(已经被删除了)数字没有length属性
var str = ‘abcd‘
str.length = 2
会隐式的加上new String(str).length = 2; delete
console.log(str)//abcd
console.log(str.length)//字符串是有length属性的
1 var str = ‘abc‘;
2     str +=1;
3 var test = typeof(str);
4 if(test.length==6){
5     test.sign = ‘typeof的返回结果可能是String‘
6 }
7 console.log(test.sign)//undefined
1   var x = 1;
2     if(function f(){}) {    // 注意:function外面加了括号,所以变成了表达式,
3                             //      所以就可以立即执行了,在执行后就再也找不到它了
4         x += typeof f;      //  这时的f是找不到的(f is not defined),
5                             //一般这时系统会报错,但是唯独typeof,会返回字符串
6    }
7  console.log(x);//“undefined”
 1 function Person(name,age,sex) {   
 2         var a = 0;
 3         this.name = name;
 4         this.age = age;
 5         this.sex = sex;
 6         function sss () {
 7             a++;
 8             console.log(a);
 9         }
10         this.say = sss;
11     }
12     var oPerson = new Person();
13     oPerson.say();//1
14     oPerson.say();//2
15     var oPerson1 = new Person();
16     oPerson1.say();//1
 1 var x = 1, y = z = 0;
 2   function add(n){
 3       return n = n + 1;
 4  }
 5  y = add(x);
 6  function add(n){
 7       return n = n +3;
 8  }
 9  z = add(x);
10 //x,y,z      1   4   4  函数整体提升(两个函数一样的)
 1  //计算字符串的长度,字母数字为一个,汉字为两个。
 2    //解法一
 3      var str = ‘hello word 饭局‘
 4     //  var count = str.length;
 5     //  for(var i = 0; i < count; i++){
 6     //     if(str.charCodeAt(i) > 255){
 7     //         count ++;
 8     //     }
 9     // }
10     // console.log(count)//  15  
11     //解法二
12     var code = 0;
13     for(var i = 0 ; i<str.length; i++){
14         if(str.charCodeAt(i) > 255) {
15             code +=2;
16         }else{
17             code ++;
18         }
19     }
20     console.log(code)//15

 

对象、包装类

原文:https://www.cnblogs.com/yqyf/p/12409129.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!