js编程之对象

//万物皆对象

var dog = {
                //属性----特征
                name: '旺财',
                type: '中华田园犬',
                age: '2',
                //方法----行为
                bark: function() {
                    console.log(this.name + '汪汪汪');
                }, //这里要加上,
                eat: function() {
                    console.log(this.name + '啃骨头');
                }
            }
            // 访问对象
            //第一种方法
        console.log(dog.name);
        dog.bark();
        //第二种方法  中括号里面是字符串
        console.log(dog['name']);

//函数和方法的区别

//函数独立存在 直接调用

//方法是对象的函数  函数的调用是dog.bark()

new关键字

        构造函数  用于创建一类对象,首字母要大写 构造函数要和new一起使用才有意义

        new在执行时会做的四件事:

        new会在内存中创建一个空的对象

        new会让this指向这个空对象

        执行构造函数  目的:给这个新对象加属性和方法

        new会返回这个新对象

this指向问题:

1、在函数中               -----返回的是window

2、在方法中             --------返回的是方法所属对象的属性

3、在构造函数中    ----------指向的是构造函数创建的对象

// 函数中
        function fn() {
            console.log(this); //window
        }
        fn();
//方法中
        var o = {
            name: 'lilei',
            sex: 'nan',
            sayhi: function() {
                console.log(this.name); //lilei
            }
        }
        o.sayhi();
//constructor 构造函数
        function Fn() {
            this.name = '韩梅梅';
            this.age = 18;
            console.log(this); //
        }

        var object = new Fn();

返回的是构造函数创建的对象:

 对象和构造函数的区别:

对象里面的属性和方法采用的是键-值对的方式出现 name:'李雷'  构造函数里面是this.name='韩梅梅'

对象里面有方法(就是对象的函数),构造函数里面没有

对象是var o={}  构造函数是function Fn() {}  这里的Fn首字母要大写  

对象里面是:

var o = {
            name: 'lilei',
            sex: 'nan',
            sayhi: function() {
                console.log(this.name); //lilei
            }
        }
        o.sayhi();
 //constructor 构造函数
        function Fn() {
            this.name = '韩梅梅';
            this.age = 18;
            console.log(this); //
        }

        var object = new Fn();
//constructor 构造函数
        function Fn() {
            this.name = '韩梅梅';
            this.age = 18;
            console.log(this); //
        }

        var object = new Fn(); // 指向的是构造函数创建的对象
        // 另一种调用方式
        Fn();   //此时指向的是window  相当于普通的函数调用

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值