JS继承和监听

JS之继承

拷贝继承

function CreatePerson(name,sex){
            this.name=name;
            this.sex=sex;
            // 这里的this指向的是window,将传入参数的name和sex上传到浏览器window保存,变成全局
        }
        CreatePerson.prototype.show=function(){
            console.log('我是'+this.name)
            
        }
        var zhangsan=new CreatePerson('zhangsan','男')
        //创建另个一个类
        function CreateSuper(name,sex){
            /* this.name = name;
            this.sex = sex; */
            // 构造继承   只能继承类的属性和方法  不能继承原型
            CreatePerson.call(this,name,sex)
        }
        extend(CreateSuper.prototype,CreatePerson.prototype)
        var huangxiaoming = new CreateSuper('黄晓明','男');

        console.log(huangxiaoming.name)
        huangxiaoming.show();

        // 3.创建学生类
        function CreateStudent(name,sex){
            CreatePerson.call(this,name,sex)
        }
        extend(CreateStudent.prototype,CreatePerson.prototype)
        var xiaohong = new CreateStudent('小红','女');
        xiaohong.show()

        // 浅拷贝继承  深拷贝继承  继承引用类型
        function extend(obj1,obj2){
            for(attr in obj2){
                obj1[attr] = obj2[attr];
            }
        }

原型继承

<script>
        function Super(){
            this.name='小红'
        }
        Super.prototype.sayName=function(){
            console.log('我叫:'+this.name)
        }
        function Sub(){
            this.name='李四'
        }
        //原型继承 
        Sub.prototype=new Super();
        //可以将super的实例所有属性和方法继承到sub中
        var sub=new Sub();
        console.log(sub);
        // 显示了Sub所有的属性和super的所有属性
        sub.sayName();
        // 我叫'李四',此时的this指向了Sub
    </script>

事件监听

    <script>
        var btn = document.getElementById('btn');

        // 1.传统事件绑定  绑定同一个事件  同一个元素  下面的会将上面的事件进行覆盖
        /* btn.onclick = function(){
            alert('aaa')
        }
        btn.onclick = function(){
            alert('bbb')
        }
        btn.onclick = function(){
            alert('ccc')
        }
		//最终显示的是ccc
        btn.onclick = null; */

        // 2.事件侦听  下面不会覆盖上面的
        var btn1 = document.getElementById('btn1');
        btn1.addEventListener('click',function(){
            alert('aaa')
        })
        btn1.addEventListener('click',function(){
            alert('bbb')
        })
        btn1.addEventListener('click',function(){
            alert('ccc')
        }
		//最终显示的是ccc,bbb,aaa


        removeEventListener()

        // 兼容性  ie9以下  先出来bbbb   再出来aaa
        btn.attachEvent('onClick',function(){alert('aaa')})
        btn.attachEvent('onClick',function(){alert('bbb')})

        // 造一个轮子
        function EventListener(element,eventName,fn){
            if(element.addEventListener){
                element.addEventListener(eventName,fn)
            }else if(element.attachEvent){
                element.attachEvent("on"+eventName,fn)
            }else{
                element['on'+eventName] = fn;
            }
        }
        function fn(){
            alert(8899)
        }
        EventListener(btn1,'click',fn)
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 videojs 中添加自定义的字幕按钮,你可以使用 videojs 的插件机制来实现。下面是一个简单的示例: 1. 创建一个自定义插件并注册到 videojs 中: ```javascript videojs.registerPlugin('customSubtitleButton', function() { var player = this; // 创建字幕按钮 var subtitleButton = document.createElement('button'); subtitleButton.className = 'vjs-custom-subtitle-button vjs-control'; subtitleButton.innerHTML = 'Subtitle'; // 添加字幕按钮到控制栏 var controlBar = player.controlBar; controlBar.el().insertBefore(subtitleButton, controlBar.fullscreenToggle.el()); // 监听字幕按钮的点击事件 subtitleButton.addEventListener('click', function() { // TODO: 处理字幕按钮的点击事件 }); }); ``` 2. 在 `click` 事件处理程序中,你可以显示一个自定义的界面,让用户选择字幕语言或其他字幕设置,并使用 videojs 的 API 来加载相应的字幕文件。例如: ```javascript // 创建一个字幕文件对象 var subtitles = { src: 'https://example.com/my-subtitles.vtt', kind: 'subtitles', srclang: 'en', label: 'English' }; // 加载字幕文件 player.addRemoteTextTrack(subtitles, true); ``` 在这个示例中,我们使用 `addRemoteTextTrack` 方法来加载字幕文件。第一个参数是一个字幕文件对象,其中包含字幕文件的 URL、语言和标签等信息。第二个参数 `true` 表示这是默认的字幕轨道。 3. 最后,在 videojs 中启用自定义插件: ```javascript var player = videojs('my-video'); player.customSubtitleButton(); ``` 这将在 videojs 播放器中添加一个自定义的字幕按钮,并在点击时加载字幕文件。你可以根据需要自定义字幕按钮的样式和功能。 希望这可以帮助你实现 videojs 中的自定义字幕按钮。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值