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.装饰器
javascript基础拾遗(二)的更多相关文章
- JavaScript基础笔记二
一.函数返回值1.什么是函数返回值 函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...
- javascript基础拾遗(十二)
1.javascript的单线程特性 在javascript中,所有的代码都是单线程的 因此所有的网络操作,浏览器事件,都必须是异步执行的,异步执行的逻辑是回调. function callback( ...
- Javascript 基础(二)
一.js运算符: +.-.*./.% %(去模 就是计算两个数的余数,通常判断是否能整除),主要用于整数. var a=90; var b=8; if(a%b==0) window.alert(&qu ...
- JavaScript基础(二)
一.外部引用语法<script src="script.js"></script> 二.在页面中的位置 1.我们可以将JavaScript代码放在html文 ...
- JavaScript基础学习(二)—JavaScript基本概念
一.语法 1.区分大小写 JavaScript是一种弱类型的脚本语言.它区分大小写,变量名test与Test表示两个完全不同的变量. 2.标识符 所谓标识符就是变量.函数.属性的 ...
- 前端开发之JavaScript基础篇二
主要内容: 1.流程控制条件语句和switch语句 2.for循环和while循环 3.Break语句和Continue语句 4.数组和数组常用方法 5.函数 6.对象 一.流程控制条件语句和swit ...
- javascript基础(二)类型转换
原文http://pij.robinqu.me/ 类型转换 当期望使用一个布尔值的时候,可以提供任意类型值,JavaScript将根据需要自行转换类型.类型转换可以分为隐式转换和显式转换. 显式转换 ...
- javascript基础拾遗(十三)
1.jQuery的特点 jQuery是目前非常流行的javascript库,理念是"Write Less,Do More" 1)消除浏览器差异 2)简洁的操作DOM方法 3)轻松实 ...
- javascript基础拾遗(十一)
1.DOM操作 1)查找 //根据id查找 document.getElementById() //根据html标签查找 documnet.getElementByTagName() //根据样式cl ...
随机推荐
- VS2010 lib和dll导出路径设置
创建库文件工程时往往需要设置.lib文件和.dll文件的路径. 假设一个solution对应了多个工程,然而他们共用一些库,就可以在solution文件夹下分别添加两个文件夹lib和bin(其实放在一 ...
- soa---java 多线程的---锁
如今soa 与分布式计算已经成为互联网公司技术的标配 那他包括的知识点应该熟悉了解.并以此为基础,去应用,调优各种soa的框架. 包括例如以下的四点.是分布式的基础. a java 多 ...
- C++ 11保留小数点的四舍五入方案
当然,C++ 11提供各类型的std::round来四舍五入,但是没有一个能直接支持保留小数点位数的四舍五入方案. 所以需要通过setprecision来实现: #include <iomani ...
- ubuntu 安装 oracle-xe-universal
安装oracle-xe-universal第一个我们要考虑的就是交换分区是否足够大, 如果你直接安装,可能会出现下面的英文提示: This system does not meet the minim ...
- linux shell 脚本攻略学习4
1.cat命令详解 cat 是concatnate(拼接)的简写. 语法: cat file1 file2 file3 .... 作用:将文件内容拼接在一起进行输出 具体应用: 1).压缩空白行 加上 ...
- 【LeetCode】203. Remove Linked List Elements
Remove Linked List Elements Remove all elements from a linked list of integers that have value val. ...
- fwrite()的返回值随着格式的不同返回值也不同;
常用地函数fwrite fwrite()的返回值随着格式的不同返回值也不同: 也是最近涉及到代码才注意到的,汗!!! 转载了一篇文章来说明这个问题:文章地址:http://blog.csdn.net/ ...
- 【转】expect语言学习笔记
上周mentor要求我写一个unix shell 脚本, 以便半夜让服务器自动编译image. 其实我觉得每天我走的时候让服务器编译不也挺好的么... 我懒,假装没听见好不容易赖过去了. ...
- Rplidar学习(一)—— 开发套件初识
一.简介 RPLIDAR A1 开发套装包含了方便用户对 RPLIDAR A1 进行性能评估和早期开发所需的配套工具. 用户只需要将 RPLIDAR A1 模组与 PC 机连接,即可在配套的评估软件中 ...
- POJ 1637 Sightseeing tour (SAP | Dinic 混合欧拉图的判断)
Sightseeing tour Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6448 Accepted: 2654 ...