发表于: 2017-04-20 18:13:28

1 1068


今天完成的事: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 是对象类型的名称。



返回列表 返回列表
评论

    分享到