js 类引用方式的区别

方式1:

function A(B){
   this.parter = B;
}

function B(){
}

function Test(){
  var b = new B();
  new A(b);
}

方式2:

function A(){
   this.parter = null; 
}

function B(){
}

function Test(){
  var a = new A();
  a.parter = new B();
}

这两种最大的区别在于:

第一种方式中,可以无忧无虑的访问B属性,B肯定是存在的。

第二种方式中,访问B属性,不一定存在。

原因是,第二种方式中,只有A实例化完成之后,才会执行赋值语句。

时间: 2024-10-13 02:36:02

js 类引用方式的区别的相关文章

JS类定义方式

// 方法1 对象直接量 var obj1 = { v1 : "", get_v1 : function() { return this.v1; }, set_v1 : function(v) { this.v1 = v; } }; obj1.set_v1('hello1'); alert(obj1.get_v1()); // 方法2 定义函数对象 var Obj = function() { var v1 = ""; this.get_v1 = function(

bash中的正则工具几种引用方式的区别

在平时大量的日志数据分析时候,我们就会大量的使用正则表达式用来配合平时写的脚本来带来需要的效果,而在使用正则表达式工具的时候都是在需要在引用中,在平时我们的引用一般有3中,分别是:双引号("").单引号('').反引号(``). 其中最后一种和前2种区分还是比较简单的,反引号(``)的引用在bash中一般是用来做参数展开,用于获取最后参数运算后的结果用的,而双引号("").单引号('')这2种区别还是有点不好区分的,记得以前还有朋友来问过我,在这里就简单的说一下,从

了解向方法传递结构和向方法传递类引用之间的区别(C# 编程指南)

下面的示例演示如何使用 结构 到方法与通过 类 实例不同传递给方法.在此示例中,两个参数 (结构和类实例) 将值和两个方法通过更改参数的一个字段的值.但是,这两个方法的结果是不同的,因为的传递,当您通过时结构什么不同通过,则可以通过类的实例. 由于结构是 值类型,那么,当您对方法的 使用结构值 ,方法受到并对结构参数的副本.方法无法访问原始结构中调用方法并不能将其更改任何方式.该方法可以仅更改副本. 类的实例是 引用类型,而不是值类型.当对方法的 引用类型通过值 ,方法进行引用的复制到类实例.即

JS面向对象编程创建类的方式

js创建类的方式有几种,大致如下: 1,构造函数方式: function Car(parameters) { this.name = "objectboy"; } var cat1 = new Car(); console.log(cat1.name); 2,Object.create() var Cat = { name: "大毛", makeSound: function(){ alert("喵喵喵"); } }; var cat1 = Ob

js类定义函数时用不用prototype的区别?

一直在使用js编写自以为是面向对象的方法,遇到一个问题,就是定义一个方法,如下:      function ListCommon2(first,second,third) {   this.First=function () {  alert("first do"+first); } }  ListCommon2.do1=function(first) {    //   this.First();  alert("first do"+first); } List

js两种定义函数、继承方式及区别

一:js两种定义函数的方式及区别 1:函数声明: function sayA() { alert("i am A"); } 2:函数表达式: var sayB = function() { alert("i am B"); } 区别:code 前者会在代码执行之前提前加载到作用域中,后者则是在代码执行到那一行的时候才会有定义 二:js两种继承方式及区别 对象冒充 临时属性 call() apply() 原型链 code 继承应选哪种 code 三:实例 js两种定义

js面向对象编程: js类定义函数时prototype和this区别?

在面向对象编写js脚本时,定义实例方法主要有两种 如下: function ListCommon2(afirst) { var first=afirst; this.do1=function () { alert("first do"+first); } } ListCommon2.prototype.do2=function() { // alert("first do"+first);//会出错,不能访问first this.do1(); } this.do1=

C++学习体会--引用方式复制类对象

C++学习体会--引用方式复制类对象 引用的重要性实际体现在函数的形参和函数的返回值.一般引用也只是出现在这两个地方. 引用方式的好处,如果是体现在形参,在使用函数的时候,实参必定会初始化形参,如果不加引用,系统会创建实参的副本将值传递给形参,这样会造成资源额外的占用.为了节省资源的占用,通过一种引用的方式,达到这个效果,因为引用知识将实参的地址给了形参,处理形参,如同处理实参. 下面将给出程序使用的例子:引用的重要性体现在形参上 #include <iostream> using names

最新的JavaScript核心语言标准&mdash;&mdash;ES6,彻底改变你编写JS代码的方式!【转载+整理】

原文地址 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和for-of循环 生成器 Generators 模板字符串 不定参数和默认参数 解构 Destructuring 箭头函数 Arrow Functions Symbols 集合 学习Babel和Broccoli,马上就用ES6 代理 Proxies ES6 说自己的宗旨是"凡是新加入的特性,势必已在其它语言中得到强有力的实用性证明."--TRUE!如果你大概浏览下 ES6 的新特性,事实上它