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,会发现纯对象与函数对象的不同,如下图
  • 相关阅读:
    extjs grid renderer用法
    spket对Extjs4的支持方法 eclipse插件spket安装 extjs4 提示
    Delphi关于多线程同步的一些方法 zb
    指针学习(一) zb
    struts2中action实现ModelDriven后无法返回json的问题
    前端css编写规范
    javascript 原型链
    chrome bug
    浏览器缓存
    RegExp
  • 原文地址:https://www.cnblogs.com/goldli/p/4028251.html
Copyright © 2011-2022 走看看