zoukankan      html  css  js  c++  java
  • [原创]javascript prototype 对象 函数 <精简的美丽......>

    javascript prototype 对象 函数

    在javascript中我们都知道创建一个对象使用如下代码
    var x = {}
    对象可以拥有属性和方法
    var x = {
        value : 0,
        add : function(a,b){
            return a + b;
        }
    }

    而创建一个函数时,使用
    var fx = function(){}    <func1>

    function fx(){}            <func2>

    这两种声明方式的区别是 func2 的优先级高于 func1。func2可以在函数所在文件加载后立即初始化。
    对象x是没有prototype属性的,且其实例化后也没有此属性。即
    var xIns = Object.create(x);
        xIns.prototype 的引用是错误的。
    因此,对象的方法是静态的,只能在对象声明时创建。
    函数则不同。函数只要被使用(初始化或调用)后都会有prototype属性。可以使用prototype来动态的添加属性或方法。
    所以,在javascript中对象可以划分为纯对象 var x = {} 与 函数对象 var obj = function(){}
    而要使用prototype动态扩展一些方法或属性则需要使用函数对象。
    综上所述,纯对象可以被看作是伪 prototype。
    以下测试用例:
    在html网页中输入
            function fx(){
            }

            var obj = {}
            
    在浏览器中打开网页,设置断点,然后展开this,会发现纯对象与函数对象的不同,如下图
  • 相关阅读:
    .NET技术对软件行业的积极作用
    ADO.NET Entityframework MYSQL provider
    用杯子量水问题通用解法
    详解.NET异步
    说 框架、架构、模式、重构
    谈 三层结构与MVC模式的区别
    面试题一例分享
    LINQ notes2 lambda expression
    毕业论文B.3 DTW算法
    LINQ notes1 intro
  • 原文地址:https://www.cnblogs.com/goldli/p/4028251.html
Copyright © 2011-2022 走看看