发表于: 2017-04-20 18:13:28
1 1067
今天完成的事:1,写了任务4的几个页面,思考任务4逻辑等
并为audio添加了播放暂停按钮
$(".audio").click(function(){
var audio = document.getElementById('music1');
if(audio!==null){
//检测播放是否已暂停.audio.paused 在播放器播放时返回false.
audio.paused;
if(audio.paused) {
audio.play();//audio.play();// 这个就是播放
}else{
audio.pause();// 这个就是暂停
}
}
});
2,学习了高程函数部分,了解了为什么js没有程序重载等知识
怎么样深入理解js中为什么没有重载:
· Java中:通过方法签名来唯一确定一个方法。所谓方法签名包括:方法名、参数类型和参数顺序、参数个数这几个要素。所以,如果两个方法名称相同,但是只要其他要素(例如参数类型、参数个数)不同,编译器就会认为是不同方法。从而可以存在同名的不同方法,导致了重载现象。
· JavaScript:函数(或对象方法)完全靠函数名称唯一确定,JS不将参数列表作为区分函数的依据。更关键的是,在JS中,函数是作为一种特殊对象类型存在的,函数的名字只是一个普通的变量,本质与var a = 1中的变量a没什么区别。所以如果你先后定义了两个同名函数,实际上相当于先后将两个函数对象绑定到了同一个变量上,所以后者必然覆盖前者,不会共存,也自然不存在重载了。
明天计划的事:1,继续做任务
2,继续看js高程
遇到的问题:任务4的逻辑还没弄明白,没明白怎么实现;
收获:
alert()只能输出string,如果alert输出的是对象会自动调用toString()方法
toString()函数的返回值为String类型。返回当前对象的字符串形式。但是:
JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。
也可以自己设置对象的tostring方法以到达自己的目的
类型 | 行为描述 |
---|---|
Array | 将 Array 的每个元素转换为字符串,并将它们依次连接起来,两个元素之间用英文逗号作为分隔符进行拼接。 |
Boolean | 如果布尔值是true,则返回"true"。否则返回"false"。 |
Date | 返回日期的文本表示。 |
Error | 返回一个包含相关错误信息的字符串。 |
Function | 返回如下格式的字符串,其中 functionname 是一个函数的名称,此函数的 toString 方法被调用: "function functionname() { [native code] }" |
Number | 返回数值的字符串表示。还可返回以指定进制表示的字符串,请参考Number.toString()。 |
String | 返回 String 对象的值。 |
Object(默认) | 返回"[object ObjectName]",其中 ObjectName 是对象类型的名称。 |
评论