“undefined”属性的名称

时间:2017-11-16 17:56:05

标签: javascript reactjs ecmascript-6

如果我在类上有一个已定义的属性或函数,我可以得到它的名称。例如我可以用这个获得一个类名......

from pyspark import SparkContext, SparkConf
from pyspark import StorageLevel
from pyspark.sql import SparkSession
import pandas as pd
import numpy as np
import sys

APP_NAME = "isCheckPointWorking"

spark = SparkSession\
    .builder\
    .appName(APP_NAME)\
    .config("spark.sql.crossJoin.enabled","true")\
    .getOrCreate()

sc = SparkContext.getOrCreate()

#set the checkpoint directory
sc.setCheckpointDir('gs://mybucket/checkpointtest/')

#create a spark dataframe with one column containing numbers 1 through 9
df4 = spark.createDataFrame(pd.DataFrame(np.arange(1,10),columns = ["A"]))
df4.show()

#create a list of new columns to be added to the dataframe
numberList = np.arange(0,40) 
colNewList = ['col'+str(x) for x in numberList]

print(colNewList)

iterCount = 0

for colName in colNewList:

    #copy column A in to the new column
    df4 = df4.withColumn(colName,df4.A)

    if (np.mod(iterCount,10) == 0):           
        df4 = df4.persist(StorageLevel.MEMORY_AND_DISK)      

        df4.checkpoint(eager=True)

        df4.count()    
        #checking if underlying RDD is being checkpointed        
        print("is data frame checkpointed "+str(df4.rdd.isCheckpointed()))

    iterCount +=1

或带

的函数名称
console.log(`${this.constructor.name} is my name.);

但我想知道尚未声明的属性/函数的名称,即fnA() { console.log(`There is a function called ${this.fnA.name}); } typeof。这意味着undefined失败。

有没有办法在.name字段的代码中获取名称?

@skyboyer put it“(我正在)获取一些函数作为参数,如果它未定义(我)想知道什么是原始变量名”

像这样......

undefined

1 个答案:

答案 0 :(得分:2)

使用Proxy get处理程序陷阱:

let ns = new Proxy({}, {
  get (target, name) {
    if (name in target) {
      return target[name]
    }

    // handle missing values
    console.log(name)
  }
})

ns.contains = true

// does nothing
ns.contains

// logs 'missing'
ns.missing