• 原型函数


    今天偶然看到一个原型的博客,看了之后还是不懂,然后就自己看书,然后看了原型函数

    恩,上代码呗

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset='UTF-8'>
        <title>prototype</title>
    </head>
    <body>
    
    </body>
    <script type="text/javascript">
        function person(){
    
        }
        person.prototype.name='wenwen';
        person.prototype.age=23;
        person.prototype.job='engi';
        person.sayName=function(){
            alert(this.name);
        }
        var person1=new person;
        var person2=new person;
        console.log(person1.name);//wenwen
        console.log(person2.name);//wenwen
        
    </script>
    </html>

    这就是原型函数呢

    这个也可以实例修改值

    var person1=new person;
    	var person2=new person;
    
    	person1.name='hello';
    	console.log(person1.name);//hello
    	console.log(person2.name);//wenwen
    

     就是这样

    然后还有个判断属性是实例属性还是原型属性的,就是hasOwnProperty()方法

            var person1=new person;
        var person2=new person;
    
        person1.name='hello';
        console.log(person1.name);//hello
        console.log(person2.name);//wenwen
        console.log(person1.hasOwnProperty('name'));//true
        console.log(person2.hasOwnProperty('name'));//false        

    而且就是delete可以删除实例属性,但是不能删除原型属性,不信看代码

        var person1=new person;
        var person2=new person;
    
        delete person1.name;
        console.log(person1.name);//wenwen
        console.log(person2.name);//wenwen
    var person1=new person;
        var person2=new person;
        person1.name='hello';
        delete person1.name;
        console.log(person1.name);//wenwen
        console.log(person2.name);//wenwen

    还有个in操作符咯,in操作符会通过对象能够访问给定属性时返回true,无论该属性是在实例中还是原型中,

        var person1=new person;
        var person2=new person;
        person1.name='hello';
        delete person1.name;
        console.log(person1.name);//wenwen
        console.log(person2.name);//wenwen
        console.log('name' in person1);//true

    还有更简单的原型语法

        person.prototype={
            name:'wenwen',
            age:23,
            job:'eng',
            sayName:function(){
                alert(this.name);
            }
        };
  • 相关阅读:
    fs.mkdir
    Node Buffer 利用 slice + indexOf 生成 split 方法
    class 类
    Proxy + Reflect 实现 响应的数据变化
    ivew 封装删除 对话框
    php调用js变量
    JS调用PHP 和 PHP调用JS的方法举例
    curl远程传输工具
    php 正则只保留 汉字 字母 数字
    php 发送与接收流文件
  • 原文地址:https://www.cnblogs.com/lwwen/p/5983919.html
Copyright © 2020-2023  润新知