zoukankan      html  css  js  c++  java
  • javascript基础拾遗(二)

    1.对象定义
    定义属性

    var language = {
            name:'javascript',
            score:9.0
        };
        console.log(language.name)
        console.log(language.score)
    

    定义方法

    var language = {
            name:'javascript',
            score:9.0,
            percent: function () {
                var result = this.score/10*100 + '%';
                return result;
            }
        };
        console.log(language.name)
        console.log(language.score)
        console.log(language.percent)
        console.log(language.percent())
    

    this关键字详解
    在属性和方法中,this关键字表示对象本身,即language
    如果不在对象中定义的方法或变量中,this指代的是什么呢?

    function get_percent() {
            var result = this.score/10*100 + '%';
            return result;
        }
        var language = {
            name:'javascript',
            score:9.0,
            percent: get_percent
        };
        console.log(language.percent())
        console.log(get_percent())
    	var fn = language.percent
        console.log(fn())
    

    当以对象的方式调用时,this指向被调用的对象,需要注意的是必须用obj.xxx(),this才指向该对象
    当单独调用时,this指向全局对象,也就是window

    如果是方法内部定义的方法呢?

    var language = {
            name:'javascript',
            score:9.0,
            percent: function () {
                function get_percent() {
                    var result = this.score/10*100 + '%';
                    return result;
                }
                return get_percent()
            }
        };
        console.log(language.percent())
    

    答案是找不到对象的,可以再方法内将this赋给变量,然后内部方法访问变量,就可以找到对象了。

    2.apply关键字
    apply关键字用来控制this指向的对象

    function get_percent() {
            var result = this.score/10*100 + '%';
            return result;
        }
        var language = {
            name:'javascript',
            score:9.0,
        };
        var result = get_percent.apply(language,[])
        console.log(result)
    

    get_percent.apply(language,[])
    language:get_percent函数的this参数绑定为language
    []:get_percent函数本身的参数

    与call关键字的区别,apply参数是数组,call按顺序传入。

    3.装饰器

  • 相关阅读:
    《大道至简》读后感
    PowerBuilder学习笔记之1开发环境
    PowerBuilder学习笔记之14用户自定义对象
    查询数据库大小的代码
    JAVA基础_修饰符
    SQLSERVER查询存储过程内容
    Asp.Net WebAPI中Filter过滤器的使用以及执行顺序
    运算符
    判断(if)语句
    变量的命名
  • 原文地址:https://www.cnblogs.com/shijingjing07/p/7989150.html
Copyright © 2011-2022 走看看